<!DOCTYPE html>
<!-- saved from url=(0065)http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop -->
<html lang="zh-Hans" class="h-full __variable_1f5468" data-theme="light"><script id="allow-copy_script">(function agent() {
    let unlock = false
    document.addEventListener('allow_copy', (event) => {
      unlock = event.detail.unlock
    })

    const copyEvents = [
      'copy',
      'cut',
      'contextmenu',
      'selectstart',
      'mousedown',
      'mouseup',
      'mousemove',
      'keydown',
      'keypress',
      'keyup',
    ]
    const rejectOtherHandlers = (e) => {
      if (unlock) {
        e.stopPropagation()
        if (e.stopImmediatePropagation) e.stopImmediatePropagation()
      }
    }
    copyEvents.forEach((evt) => {
      document.documentElement.addEventListener(evt, rejectOtherHandlers, {
        capture: true,
      })
    })
  })()</script><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, user-scalable=no"><link rel="stylesheet" href="./nl2sql - Dify_files/fb11ef1a37ba6677.css" data-precedence="next"><link rel="stylesheet" href="./nl2sql - Dify_files/d0d234bdf94da93a.css" data-precedence="next"><link rel="stylesheet" href="./nl2sql - Dify_files/344ebcd3f343f270.css" data-precedence="next"><link rel="stylesheet" href="./nl2sql - Dify_files/24104006e16c916b.css" data-precedence="next"><link rel="stylesheet" href="./nl2sql - Dify_files/0630394cffbbbd19.css" data-precedence="next"><link rel="stylesheet" href="./nl2sql - Dify_files/220a772cfe3c95f4.css" data-precedence="next"><link rel="stylesheet" href="./nl2sql - Dify_files/5bb43505df05adfe.css" data-precedence="next"><link rel="stylesheet" href="./nl2sql - Dify_files/61080ff8f99d7fe2.css" data-precedence="next"><link rel="stylesheet" href="./nl2sql - Dify_files/1935925f720c7d7b.css" data-precedence="next"><link rel="preload" as="script" fetchpriority="low" href="./nl2sql - Dify_files/webpack-b93805992edc9a20.js"><script src="./nl2sql - Dify_files/79d472a6-5af6d214571a09f4.js" async=""></script><script src="./nl2sql - Dify_files/78308-29f9600d9a963f52.js" async=""></script><script src="./nl2sql - Dify_files/main-app-a75bb5489b1baff5.js" async=""></script><script src="./nl2sql - Dify_files/77ab3b1e-fd4d59f34635c643.js" async=""></script><script src="./nl2sql - Dify_files/1ae6eb87-420e14460b94df73.js" async=""></script><script src="./nl2sql - Dify_files/bda40ab4-465678c6543fde64.js" async=""></script><script src="./nl2sql - Dify_files/fc43f782-79940e17154d7af3.js" async=""></script><script src="./nl2sql - Dify_files/99152-8637868c19a6b4db.js" async=""></script><script src="./nl2sql - Dify_files/81268-aaa4489306e8142f.js" async=""></script><link rel="preload" href="./nl2sql - Dify_files/220a772cfe3c95f4.css" as="style"><link rel="preload" href="./nl2sql - Dify_files/5bb43505df05adfe.css" as="style"><link rel="preload" href="./nl2sql - Dify_files/61080ff8f99d7fe2.css" as="style"><link rel="preload" href="./nl2sql - Dify_files/1935925f720c7d7b.css" as="style"><meta name="next-size-adjust" content=""><link rel="manifest" href="http://localhost/manifest.json"><meta name="theme-color" content="#1C64F2"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="Dify"><link rel="icon" type="image/png" sizes="16x16" href="http://localhost/icon-192x192.png"><meta name="msapplication-TileColor" content="#1C64F2"><meta name="msapplication-config" content="/browserconfig.xml"><script src="./nl2sql - Dify_files/polyfills-42372ed130431b0a.js" nomodule=""></script><link rel="preload" href="http://localhost/_next/static/media/9cc5b37ab1350db7-s.p.woff2" as="font" crossorigin="" type="font/woff2"><link rel="preload" href="http://localhost/_next/static/media/e6099e249fd938cc-s.p.woff2" as="font" crossorigin="" type="font/woff2"><title>nl2sql - Dify</title><link rel="shortcut icon" href="http://localhost/favicon.ico" type="image/x-icon"><link rel="shortcut icon" type="image/x-icon" sizes="32x32" href="http://localhost/favicon.ico"></head><body class="color-scheme h-full select-auto" data-api-prefix="/console/api" data-public-api-prefix="/api" data-marketplace-api-prefix="https://marketplace.dify.ai/api/v1" data-marketplace-url-prefix="https://marketplace.dify.ai" data-public-edition="SELF_HOSTED" data-public-sentry-dsn="" data-public-site-about="" data-public-text-generation-timeout-ms="60000" data-public-max-tools-num="10" data-public-max-parallel-limit="10" data-public-top-k-max-value="10" data-public-indexing-max-segmentation-tokens-length="4000" data-public-loop-node-max-count="100" data-public-max-iterations-num="99" data-public-max-tree-depth="50" data-public-allow-unsafe-data-scheme="false" data-public-enable-website-jinareader="true" data-public-enable-website-firecrawl="true" data-public-enable-website-watercrawl="true"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("data-theme","theme","system",null,["light","dark"],null,true,false)</script><script src="./nl2sql - Dify_files/webpack-b93805992edc9a20.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n"])</script><script>self.__next_f.push([1,"3:I[4863,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"18733\",\"static/chunks/bda40ab4-465678c6543fde64.js\",\"37326\",\"static/chunks/fc43f782-79940e17154d7af3.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"81374\",\"static/chunks/81374-2ce33a35b6f6c45c.js\",\"81866\",\"static/chunks/81866-b3d3df57b2f8aa5a.js\",\"18562\",\"static/chunks/18562-fce62d1fe6f814cd.js\",\"74563\",\"static/chunks/74563-8ff42d906d1ed53a.js\",\"12757\",\"static/chunks/12757-bd3b2a94aedbaf4f.js\",\"27486\",\"static/chunks/27486-81b650cebf8030e8.js\",\"67199\",\"static/chunks/67199-a706d1f8b3950218.js\",\"28327\",\"static/chunks/28327-39afb716fa1d2a24.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"60934\",\"static/chunks/60934-ca4463f789aca92e.js\",\"3421\",\"static/chunks/3421-6a03b8b19fcba61d.js\",\"82455\",\"static/chunks/82455-42c67f6ee4266fb2.js\",\"57115\",\"static/chunks/57115-cbe78a8a8f037a6e.js\",\"90666\",\"static/chunks/90666-37cc18946410f283.js\",\"70645\",\"static/chunks/70645-abc48702c5ce8ea9.js\",\"98018\",\"static/chunks/app/(commonLayout)/layout-2e47bec606773de1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"4:I[97905,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"18733\",\"static/chunks/bda40ab4-465678c6543fde64.js\",\"37326\",\"static/chunks/fc43f782-79940e17154d7af3.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"81374\",\"static/chunks/81374-2ce33a35b6f6c45c.js\",\"81866\",\"static/chunks/81866-b3d3df57b2f8aa5a.js\",\"18562\",\"static/chunks/18562-fce62d1fe6f814cd.js\",\"74563\",\"static/chunks/74563-8ff42d906d1ed53a.js\",\"12757\",\"static/chunks/12757-bd3b2a94aedbaf4f.js\",\"27486\",\"static/chunks/27486-81b650cebf8030e8.js\",\"67199\",\"static/chunks/67199-a706d1f8b3950218.js\",\"28327\",\"static/chunks/28327-39afb716fa1d2a24.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"60934\",\"static/chunks/60934-ca4463f789aca92e.js\",\"3421\",\"static/chunks/3421-6a03b8b19fcba61d.js\",\"82455\",\"static/chunks/82455-42c67f6ee4266fb2.js\",\"57115\",\"static/chunks/57115-cbe78a8a8f037a6e.js\",\"90666\",\"static/chunks/90666-37cc18946410f283.js\",\"70645\",\"static/chunks/70645-abc48702c5ce8ea9.js\",\"98018\",\"static/chunks/app/(commonLayout)/layout-2e47bec606773de1.js\"],\"AppContextProvider\"]\n"])</script><script>self.__next_f.push([1,"5:I[24374,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"18733\",\"static/chunks/bda40ab4-465678c6543fde64.js\",\"37326\",\"static/chunks/fc43f782-79940e17154d7af3.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"81374\",\"static/chunks/81374-2ce33a35b6f6c45c.js\",\"81866\",\"static/chunks/81866-b3d3df57b2f8aa5a.js\",\"18562\",\"static/chunks/18562-fce62d1fe6f814cd.js\",\"74563\",\"static/chunks/74563-8ff42d906d1ed53a.js\",\"12757\",\"static/chunks/12757-bd3b2a94aedbaf4f.js\",\"27486\",\"static/chunks/27486-81b650cebf8030e8.js\",\"67199\",\"static/chunks/67199-a706d1f8b3950218.js\",\"28327\",\"static/chunks/28327-39afb716fa1d2a24.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"60934\",\"static/chunks/60934-ca4463f789aca92e.js\",\"3421\",\"static/chunks/3421-6a03b8b19fcba61d.js\",\"82455\",\"static/chunks/82455-42c67f6ee4266fb2.js\",\"57115\",\"static/chunks/57115-cbe78a8a8f037a6e.js\",\"90666\",\"static/chunks/90666-37cc18946410f283.js\",\"70645\",\"static/chunks/70645-abc48702c5ce8ea9.js\",\"98018\",\"static/chunks/app/(commonLayout)/layout-2e47bec606773de1.js\"],\"EventEmitterContextProvider\"]\n"])</script><script>self.__next_f.push([1,"6:I[27557,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"18733\",\"static/chunks/bda40ab4-465678c6543fde64.js\",\"37326\",\"static/chunks/fc43f782-79940e17154d7af3.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"81374\",\"static/chunks/81374-2ce33a35b6f6c45c.js\",\"81866\",\"static/chunks/81866-b3d3df57b2f8aa5a.js\",\"18562\",\"static/chunks/18562-fce62d1fe6f814cd.js\",\"74563\",\"static/chunks/74563-8ff42d906d1ed53a.js\",\"12757\",\"static/chunks/12757-bd3b2a94aedbaf4f.js\",\"27486\",\"static/chunks/27486-81b650cebf8030e8.js\",\"67199\",\"static/chunks/67199-a706d1f8b3950218.js\",\"28327\",\"static/chunks/28327-39afb716fa1d2a24.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"60934\",\"static/chunks/60934-ca4463f789aca92e.js\",\"3421\",\"static/chunks/3421-6a03b8b19fcba61d.js\",\"82455\",\"static/chunks/82455-42c67f6ee4266fb2.js\",\"57115\",\"static/chunks/57115-cbe78a8a8f037a6e.js\",\"90666\",\"static/chunks/90666-37cc18946410f283.js\",\"70645\",\"static/chunks/70645-abc48702c5ce8ea9.js\",\"98018\",\"static/chunks/app/(commonLayout)/layout-2e47bec606773de1.js\"],\"ProviderContextProvider\"]\n"])</script><script>self.__next_f.push([1,"7:I[93602,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"18733\",\"static/chunks/bda40ab4-465678c6543fde64.js\",\"37326\",\"static/chunks/fc43f782-79940e17154d7af3.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"81374\",\"static/chunks/81374-2ce33a35b6f6c45c.js\",\"81866\",\"static/chunks/81866-b3d3df57b2f8aa5a.js\",\"18562\",\"static/chunks/18562-fce62d1fe6f814cd.js\",\"74563\",\"static/chunks/74563-8ff42d906d1ed53a.js\",\"12757\",\"static/chunks/12757-bd3b2a94aedbaf4f.js\",\"27486\",\"static/chunks/27486-81b650cebf8030e8.js\",\"67199\",\"static/chunks/67199-a706d1f8b3950218.js\",\"28327\",\"static/chunks/28327-39afb716fa1d2a24.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"60934\",\"static/chunks/60934-ca4463f789aca92e.js\",\"3421\",\"static/chunks/3421-6a03b8b19fcba61d.js\",\"82455\",\"static/chunks/82455-42c67f6ee4266fb2.js\",\"57115\",\"static/chunks/57115-cbe78a8a8f037a6e.js\",\"90666\",\"static/chunks/90666-37cc18946410f283.js\",\"70645\",\"static/chunks/70645-abc48702c5ce8ea9.js\",\"98018\",\"static/chunks/app/(commonLayout)/layout-2e47bec606773de1.js\"],\"ModalContextProvider\"]\n"])</script><script>self.__next_f.push([1,"8:I[283,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"18733\",\"static/chunks/bda40ab4-465678c6543fde64.js\",\"37326\",\"static/chunks/fc43f782-79940e17154d7af3.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"81374\",\"static/chunks/81374-2ce33a35b6f6c45c.js\",\"81866\",\"static/chunks/81866-b3d3df57b2f8aa5a.js\",\"18562\",\"static/chunks/18562-fce62d1fe6f814cd.js\",\"74563\",\"static/chunks/74563-8ff42d906d1ed53a.js\",\"12757\",\"static/chunks/12757-bd3b2a94aedbaf4f.js\",\"27486\",\"static/chunks/27486-81b650cebf8030e8.js\",\"67199\",\"static/chunks/67199-a706d1f8b3950218.js\",\"28327\",\"static/chunks/28327-39afb716fa1d2a24.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"60934\",\"static/chunks/60934-ca4463f789aca92e.js\",\"3421\",\"static/chunks/3421-6a03b8b19fcba61d.js\",\"82455\",\"static/chunks/82455-42c67f6ee4266fb2.js\",\"57115\",\"static/chunks/57115-cbe78a8a8f037a6e.js\",\"90666\",\"static/chunks/90666-37cc18946410f283.js\",\"70645\",\"static/chunks/70645-abc48702c5ce8ea9.js\",\"98018\",\"static/chunks/app/(commonLayout)/layout-2e47bec606773de1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"9:I[98316,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"18733\",\"static/chunks/bda40ab4-465678c6543fde64.js\",\"37326\",\"static/chunks/fc43f782-79940e17154d7af3.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"81374\",\"static/chunks/81374-2ce33a35b6f6c45c.js\",\"81866\",\"static/chunks/81866-b3d3df57b2f8aa5a.js\",\"18562\",\"static/chunks/18562-fce62d1fe6f814cd.js\",\"74563\",\"static/chunks/74563-8ff42d906d1ed53a.js\",\"12757\",\"static/chunks/12757-bd3b2a94aedbaf4f.js\",\"27486\",\"static/chunks/27486-81b650cebf8030e8.js\",\"67199\",\"static/chunks/67199-a706d1f8b3950218.js\",\"28327\",\"static/chunks/28327-39afb716fa1d2a24.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"60934\",\"static/chunks/60934-ca4463f789aca92e.js\",\"3421\",\"static/chunks/3421-6a03b8b19fcba61d.js\",\"82455\",\"static/chunks/82455-42c67f6ee4266fb2.js\",\"57115\",\"static/chunks/57115-cbe78a8a8f037a6e.js\",\"90666\",\"static/chunks/90666-37cc18946410f283.js\",\"70645\",\"static/chunks/70645-abc48702c5ce8ea9.js\",\"98018\",\"static/chunks/app/(commonLayout)/layout-2e47bec606773de1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"a:I[17811,[],\"\"]\nb:I[70671,[],\"\"]\n"])</script><script>self.__next_f.push([1,"c:I[52806,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"18733\",\"static/chunks/bda40ab4-465678c6543fde64.js\",\"37326\",\"static/chunks/fc43f782-79940e17154d7af3.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"81374\",\"static/chunks/81374-2ce33a35b6f6c45c.js\",\"81866\",\"static/chunks/81866-b3d3df57b2f8aa5a.js\",\"18562\",\"static/chunks/18562-fce62d1fe6f814cd.js\",\"74563\",\"static/chunks/74563-8ff42d906d1ed53a.js\",\"12757\",\"static/chunks/12757-bd3b2a94aedbaf4f.js\",\"27486\",\"static/chunks/27486-81b650cebf8030e8.js\",\"67199\",\"static/chunks/67199-a706d1f8b3950218.js\",\"28327\",\"static/chunks/28327-39afb716fa1d2a24.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"60934\",\"static/chunks/60934-ca4463f789aca92e.js\",\"3421\",\"static/chunks/3421-6a03b8b19fcba61d.js\",\"82455\",\"static/chunks/82455-42c67f6ee4266fb2.js\",\"57115\",\"static/chunks/57115-cbe78a8a8f037a6e.js\",\"90666\",\"static/chunks/90666-37cc18946410f283.js\",\"70645\",\"static/chunks/70645-abc48702c5ce8ea9.js\",\"98018\",\"static/chunks/app/(commonLayout)/layout-2e47bec606773de1.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"d:I[38890,[],\"ClientSegmentRoot\"]\n"])</script><script>self.__next_f.push([1,"e:I[78452,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"49938\",\"static/chunks/49938-98a618a7b344bbf9.js\",\"77902\",\"static/chunks/app/(commonLayout)/app/(appDetailLayout)/layout-298c0b08aee4cb7d.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"11:I[33626,[],\"OutletBoundary\"]\n13:I[49583,[],\"AsyncMetadataOutlet\"]\n15:I[33626,[],\"ViewportBoundary\"]\n17:I[33626,[],\"MetadataBoundary\"]\n18:\"$Sreact.suspense\"\n1a:I[69017,[],\"\"]\n"])</script><script>self.__next_f.push([1,"1b:I[42651,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"18733\",\"static/chunks/bda40ab4-465678c6543fde64.js\",\"37326\",\"static/chunks/fc43f782-79940e17154d7af3.js\",\"57262\",\"static/chunks/f707c8ea-aef4bb0c06cd07bc.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"70095\",\"static/chunks/70095-ec7eafc4ba4a0f7d.js\",\"3791\",\"static/chunks/3791-438ee264a2dce288.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"81866\",\"static/chunks/81866-b3d3df57b2f8aa5a.js\",\"17229\",\"static/chunks/17229-e6399c3860f298bd.js\",\"13736\",\"static/chunks/13736-978cad7640553f49.js\",\"74563\",\"static/chunks/74563-8ff42d906d1ed53a.js\",\"8179\",\"static/chunks/8179-675892f51bfee312.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"60934\",\"static/chunks/60934-ca4463f789aca92e.js\",\"57083\",\"static/chunks/57083-a427820759990871.js\",\"13299\",\"static/chunks/13299-28e91d1f0586f4e7.js\",\"80901\",\"static/chunks/80901-b52b54dfe8405676.js\",\"78146\",\"static/chunks/78146-35f69c9681a958ac.js\",\"22728\",\"static/chunks/22728-6b863ef9ffb9c022.js\",\"40281\",\"static/chunks/app/(commonLayout)/app/(appDetailLayout)/%5BappId%5D/layout-b111ba5fe14f37fd.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"1c:I[94792,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"90410\",\"static/chunks/1ae6eb87-420e14460b94df73.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"81268\",\"static/chunks/81268-aaa4489306e8142f.js\",\"45658\",\"static/chunks/45658-6aa34b4e010007ac.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"47095\",\"static/chunks/47095-edf70b8cd703252f.js\",\"1301\",\"static/chunks/1301-39242e771e94eba6.js\",\"29558\",\"static/chunks/29558-d9f0ca5d997d6f9d.js\",\"41106\",\"static/chunks/41106-156b46ca5865bbdc.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"86327\",\"static/chunks/86327-c3a729800b58b1ef.js\",\"8241\",\"static/chunks/8241-524eb52f413865c4.js\",\"49938\",\"static/chunks/49938-98a618a7b344bbf9.js\",\"54480\",\"static/chunks/app/(commonLayout)/app/(appDetailLayout)/%5BappId%5D/develop/page-6080e37c55c8de74.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"1d:I[8441,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"14028\",\"static/chunks/0b8e744a-121c7b5379570949.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"13483\",\"static/chunks/13483-37dab402b516b424.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"7177\",\"static/chunks/app/layout-6b791cba4090d4d3.js\"],\"ThemeProvider\"]\n1e:I[45323,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"14028\",\"static/chunks/0b8e744a-121c7b5379570949.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"13483\",\"static/chunks/13483-37dab402b516b424.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"7177\",\"static/chunks/app/layout-6b791cba4090d4d3.js\"],\"default\"]\n1f:I[2438,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"14028\",\"static/chunks/0b8e744a-121c7b5379570949.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"13483\",\"static/chunks/13483-37dab402b516b424.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"7177\",\"static/chunks/app/layout-6b791cba4090d4d3.js\"],\"default\"]\n20:I[66673,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"14028\",\"static/chunks/0b8e744a-121c7b5379570949.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"13483\",\"static/chunks/13483-37dab402b516b424.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/8"])</script><script>self.__next_f.push([1,"6756-9a4aed2fb62961ec.js\",\"7177\",\"static/chunks/app/layout-6b791cba4090d4d3.js\"],\"TanstackQueryInitializer\"]\n22:I[58598,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"14028\",\"static/chunks/0b8e744a-121c7b5379570949.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"13483\",\"static/chunks/13483-37dab402b516b424.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"7177\",\"static/chunks/app/layout-6b791cba4090d4d3.js\"],\"default\"]\n23:I[34168,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"14028\",\"static/chunks/0b8e744a-121c7b5379570949.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"13483\",\"static/chunks/13483-37dab402b516b424.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"7177\",\"static/chunks/app/layout-6b791cba4090d4d3.js\"],\"default\"]\n24:I[53262,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"14028\",\"static/chunks/0b8e744a-121c7b5379570949.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"13483\",\"static/chunks/13483-37dab402b516b424.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"7177\",\"static/chunks/app/layout-6b791cba4090d4d3.js\"],\"ToastProvider\"]\n25:I[80408,[\"14569\",\"static/chunks/77ab3b1e-fd4d59f34635c643.js\",\"14028\",\"static/chunks/0b8e744a-121c7b5379570949.js\",\"73143\",\"static/chunks/73143-134a2fbede32f743.js\",\"24604\",\"static/chunks/24604-bddf8b59ab1ea68e.js\",\"99152\",\"static/chunks/99152-8637868c19a6b4db.js\",\"72182\",\"static/chunks/72182-ddce24899aac6e7a.js\",\"13483\",\"stat"])</script><script>self.__next_f.push([1,"ic/chunks/13483-37dab402b516b424.js\",\"59556\",\"static/chunks/59556-9af065a36f2e2d14.js\",\"86756\",\"static/chunks/86756-9a4aed2fb62961ec.js\",\"7177\",\"static/chunks/app/layout-6b791cba4090d4d3.js\"],\"default\"]\n:HL[\"/_next/static/media/9cc5b37ab1350db7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e6099e249fd938cc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/fb11ef1a37ba6677.css\",\"style\"]\n:HL[\"/_next/static/css/d0d234bdf94da93a.css\",\"style\"]\n:HL[\"/_next/static/css/344ebcd3f343f270.css\",\"style\"]\n:HL[\"/_next/static/css/24104006e16c916b.css\",\"style\"]\n:HL[\"/_next/static/css/0630394cffbbbd19.css\",\"style\"]\n:HL[\"/_next/static/css/220a772cfe3c95f4.css\",\"style\"]\n:HL[\"/_next/static/css/5bb43505df05adfe.css\",\"style\"]\n:HL[\"/_next/static/css/61080ff8f99d7fe2.css\",\"style\"]\n:HL[\"/_next/static/css/1935925f720c7d7b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"7eL4EcOtK7IfBpklJGVZC\",\"p\":\"\",\"c\":[\"\",\"app\",\"2bc896a3-14c5-47f8-ae8b-3052e1dd3f37\",\"develop\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(commonLayout)\",{\"children\":[\"app\",{\"children\":[\"(appDetailLayout)\",{\"children\":[[\"appId\",\"2bc896a3-14c5-47f8-ae8b-3052e1dd3f37\",\"d\"],{\"children\":[\"develop\",{\"children\":[\"__PAGE__\",{}]}]}]}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fb11ef1a37ba6677.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d0d234bdf94da93a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/344ebcd3f343f270.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/24104006e16c916b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0630394cffbbbd19.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"(commonLayout)\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/220a772cfe3c95f4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5bb43505df05adfe.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/61080ff8f99d7fe2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[null,[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"children\":[[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$L9\",null,{}]}],[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$Lc\",null,{}]]}]}]}]}]}]]]}],{\"children\":[\"app\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"(appDetailLayout)\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"Component\":\"$e\",\"slots\":{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]},\"params\":{}}]]}],{\"children\":[[\"appId\",\"2bc896a3-14c5-47f8-ae8b-3052e1dd3f37\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1935925f720c7d7b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$Lf\"]}],{\"children\":[\"develop\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L10\",null,[\"$\",\"$L11\",null,{\"children\":[\"$L12\",[\"$\",\"$L13\",null,{\"promise\":\"$@14\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L15\",null,{\"children\":\"$L16\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L17\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$18\",null,{\"fallback\":null,\"children\":\"$L19\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$1a\",[]],\"s\":false,\"S\":false}\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"$L1b\",null,{\"appId\":\"2bc896a3-14c5-47f8-ae8b-3052e1dd3f37\",\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n10:[\"$\",\"$L1c\",null,{\"appId\":\"2bc896a3-14c5-47f8-ae8b-3052e1dd3f37\"}]\n"])</script><script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"zh-Hans\",\"className\":\"h-full __variable_1f5468\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"manifest\",\"href\":\"/manifest.json\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"content\":\"#1C64F2\"}],[\"$\",\"meta\",null,{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Dify\"}],[\"$\",\"link\",null,{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/png\",\"sizes\":\"32x32\",\"href\":\"/icon-192x192.png\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/png\",\"sizes\":\"16x16\",\"href\":\"/icon-192x192.png\"}],[\"$\",\"meta\",null,{\"name\":\"msapplication-TileColor\",\"content\":\"#1C64F2\"}],[\"$\",\"meta\",null,{\"name\":\"msapplication-config\",\"content\":\"/browserconfig.xml\"}]]}],[\"$\",\"body\",null,{\"className\":\"color-scheme h-full select-auto\",\"data-api-prefix\":\"/console/api\",\"data-public-api-prefix\":\"/api\",\"data-marketplace-api-prefix\":\"https://marketplace.dify.ai/api/v1\",\"data-marketplace-url-prefix\":\"https://marketplace.dify.ai\",\"data-public-edition\":\"SELF_HOSTED\",\"data-public-support-mail-login\":\"$undefined\",\"data-public-sentry-dsn\":\"\",\"data-public-maintenance-notice\":\"$undefined\",\"data-public-site-about\":\"\",\"data-public-text-generation-timeout-ms\":\"60000\",\"data-public-max-tools-num\":\"10\",\"data-public-max-parallel-limit\":\"10\",\"data-public-top-k-max-value\":\"10\",\"data-public-indexing-max-segmentation-tokens-length\":\"4000\",\"data-public-loop-node-max-count\":\"100\",\"data-public-max-iterations-num\":\"99\",\"data-public-max-tree-depth\":\"50\",\"data-public-allow-unsafe-data-scheme\":\"false\",\"data-public-enable-website-jinareader\":\"true\",\"data-public-enable-website-firecrawl\":\"true\",\"data-public-enable-website-watercrawl\":\"true\",\"next-public-zendesk-widget-key\":\"$undefined\",\"next-public-zendesk-field-id-environment\":\"$undefined\",\"next-public-zendesk-field-id-version\":\"$undefined\",\"next-public-zendesk-field-id-email\":\"$undefined\",\"next-public-zendesk-field-id-workspace-id\":\"$undefined\",\"next-public-zendesk-field-id-plan\":\"$undefined\",\"children\":[[\"$\",\"$L1d\",null,{\"attribute\":\"data-theme\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"enableColorScheme\":false,\"children\":[\"$\",\"$L1e\",null,{\"children\":[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"$L20\",null,{\"children\":\"$L21\"}]}]}]}],[\"$\",\"$L22\",null,{}],null]}]]}]\n"])</script><script>self.__next_f.push([1,"21:[\"$\",\"$L23\",null,{\"locale\":\"zh-Hans\",\"children\":[\"$\",\"$L24\",null,{\"children\":[\"$\",\"$L25\",null,{\"children\":[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:2:children:1:props:children:1:1:props:children:props:children:props:children:props:children:props:children:1:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:2:children:1:props:children:1:1:props:children:props:children:props:children:props:children:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:2:children:1:props:children:1:1:props:children:props:children:props:children:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:2:children:1:props:children:1:1:props:children:props:children:props:children:props:children:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]\n"])</script><script>self.__next_f.push([1,"16:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, user-scalable=no\"}]]\n12:null\n14:{\"metadata\":[],\"error\":null,\"digest\":\"$undefined\"}\n19:\"$14:metadata\"\n"])</script><next-route-announcer style="position: absolute;"><template shadowrootmode="open"><div aria-live="assertive" id="__next-route-announcer__" role="alert" style="position: absolute; border: 0px; height: 1px; margin: -1px; padding: 0px; width: 1px; clip: rect(0px, 0px, 0px, 0px); overflow: hidden; white-space: nowrap; overflow-wrap: normal;"></div></template></next-route-announcer><div class="flex h-full flex-col overflow-y-auto"><div class="relative flex grow flex-col overflow-y-auto overflow-x-hidden bg-background-body"><div class="sticky left-0 right-0 top-0 z-[15] flex min-h-[56px] shrink-0 grow-0 basis-auto flex-col"><div class="flex h-[56px] items-center"><div class="flex min-w-0 flex-[1]  items-center pl-3 pr-2 min-[1280px]:pr-3"><a class="flex h-8 shrink-0 items-center justify-center px-0.5" href="http://localhost/apps"><img class="block object-contain w-12 h-[22px]" alt="Dify logo" src="./nl2sql - Dify_files/logo.svg"></a><div class="mx-1.5 shrink-0 font-light text-divider-deep">/</div><div class="min-w-0" data-headlessui-state=""><button class="group flex w-full cursor-pointer items-center p-0.5 hover:bg-state-base-hover false rounded-[10px]" id="headlessui-menu-button-_r_2_" type="button" aria-haspopup="menu" aria-expanded="false" data-headlessui-state=""><div class="mr-1.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-components-icon-bg-blue-solid text-[13px] max-[800px]:mr-0"><span class="h-6 bg-gradient-to-r from-components-avatar-shape-fill-stop-0 to-components-avatar-shape-fill-stop-100 bg-clip-text align-middle font-semibold uppercase leading-6 text-shadow-shadow-1 opacity-90">V</span></div><div class="flex min-w-0 items-center"><div class="system-sm-medium min-w-0  max-w-[149px] truncate text-text-secondary max-[800px]:hidden">viva's Workspace</div><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon h-4 w-4 shrink-0 text-text-secondary"><path d="M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"></path></svg></div></button></div></div><div class="flex items-center space-x-2"><a class="flex items-center relative px-3 h-8 rounded-xl font-medium text-sm cursor-pointer group text-components-main-nav-nav-button-text hover:bg-components-main-nav-nav-button-bg-hover" href="http://localhost/explore/apps"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon h-4 w-4"><path d="M3.91762 8.03672C3.32984 9.2334 3 10.5794 3 12C3 16.9705 7.02944 21 12 21C13.4216 21 14.7684 20.6697 15.9657 20.0812C16.8385 20.4545 17.6848 20.6993 18.4564 20.7622C19.3582 20.8357 20.3 20.6666 20.9818 19.9848C21.7339 19.2327 21.8625 18.169 21.7279 17.1728C21.6052 16.2639 21.2481 15.2539 20.726 14.2116C20.9051 13.5031 21 12.762 21 12C21 7.02942 16.9706 2.99998 12 2.99998C11.2389 2.99998 10.4987 3.09467 9.79103 3.27331C8.7474 2.74993 7.73605 2.39184 6.8261 2.26846C5.82897 2.13327 4.76406 2.26141 4.01121 3.01425C3.3287 3.69676 3.16001 4.63968 3.2341 5.54245C3.29752 6.31512 3.54313 7.16259 3.91762 8.03672ZM5.3224 5.96587C5.2734 5.75333 5.24204 5.55727 5.2274 5.37885C5.17928 4.79255 5.31727 4.53661 5.42543 4.42846C5.54452 4.30937 5.84797 4.15415 6.55739 4.25033C6.75482 4.2771 6.96951 4.32201 7.2 4.38559C6.50364 4.82539 5.87203 5.35796 5.3224 5.96587ZM19.6124 16.8031C19.6751 17.0317 19.7195 17.2446 19.7459 17.4405C19.8416 18.1487 19.6865 18.4516 19.5676 18.5706C19.4595 18.6786 19.204 18.8165 18.6189 18.7688C18.4419 18.7543 18.2475 18.7234 18.0368 18.6751C18.6427 18.1269 19.1736 17.4972 19.6124 16.8031ZM15.8812 17.8265C14.2046 16.9483 12.2571 15.5027 10.3752 13.6209C8.4954 11.7411 7.05092 9.79573 6.17241 8.1204C7.06357 6.78477 8.40124 5.77324 9.96933 5.29879C10.6108 5.10469 11.2923 4.99998 12 4.99998C15.866 4.99998 19 8.13399 19 12C19 12.7084 18.8951 13.3905 18.7006 14.0326C18.2261 15.5992 17.2155 16.9357 15.8812 17.8265ZM13.6052 18.8153C13.0901 18.9361 12.5528 19 12 19C8.13401 19 5 15.866 5 12C5 11.4478 5.06377 10.911 5.18429 10.3964C6.14883 11.9131 7.43475 13.5089 8.96096 15.0351C10.489 16.5631 12.0868 17.8503 13.6052 18.8153Z"></path></svg><div class="ml-2 max-[1024px]:hidden">探索</div></a><div class="
      flex h-8 max-w-[670px] shrink-0 items-center rounded-xl px-0.5 text-sm font-medium max-[1024px]:max-w-[400px]
      bg-components-main-nav-nav-button-bg-active font-semibold shadow-md
      false
    "><a href="http://localhost/apps"><div class="flex h-7 cursor-pointer items-center rounded-[10px] px-2.5 text-components-main-nav-nav-button-text-active hover:bg-components-main-nav-nav-button-bg-active-hover"><div><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon h-4 w-4"><path d="M13.5 2C13.5 2.44425 13.3069 2.84339 13 3.11805V5H18C19.6569 5 21 6.34315 21 8V18C21 19.6569 19.6569 21 18 21H6C4.34315 21 3 19.6569 3 18V8C3 6.34315 4.34315 5 6 5H11V3.11805C10.6931 2.84339 10.5 2.44425 10.5 2C10.5 1.17157 11.1716 0.5 12 0.5C12.8284 0.5 13.5 1.17157 13.5 2ZM0 10H2V16H0V10ZM24 10H22V16H24V10ZM9 14.5C9.82843 14.5 10.5 13.8284 10.5 13C10.5 12.1716 9.82843 11.5 9 11.5C8.17157 11.5 7.5 12.1716 7.5 13C7.5 13.8284 8.17157 14.5 9 14.5ZM16.5 13C16.5 12.1716 15.8284 11.5 15 11.5C14.1716 11.5 13.5 12.1716 13.5 13C13.5 13.8284 14.1716 14.5 15 14.5C15.8284 14.5 16.5 13.8284 16.5 13Z"></path></svg></div><div class="ml-2 max-[1024px]:hidden">工作室</div></div></a><div class="font-light text-divider-deep">/</div><div class="relative" data-headlessui-state=""><button class="hover:hover:bg-components-main-nav-nav-button-bg-active-hover group inline-flex h-7 w-full items-center justify-center rounded-[10px] pl-2 pr-2.5 text-[14px] font-semibold text-components-main-nav-nav-button-text-active" id="headlessui-menu-button-_r_8_" type="button" aria-haspopup="menu" aria-expanded="false" data-headlessui-state=""><div class="max-w-[157px] truncate" title="nl2sql">nl2sql</div><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" aria-hidden="true" class="remixicon ml-1 h-3 w-3 shrink-0 opacity-50 group-hover:opacity-100"><path d="M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"></path></svg></button></div></div><div class="
      flex h-8 max-w-[670px] shrink-0 items-center rounded-xl px-0.5 text-sm font-medium max-[1024px]:max-w-[400px]
      false
      hover:bg-components-main-nav-nav-button-bg-hover
    "><a href="http://localhost/datasets"><div class="flex h-7 cursor-pointer items-center rounded-[10px] px-2.5 text-components-main-nav-nav-button-text"><div><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon h-4 w-4"><path d="M21 18H6C5.44772 18 5 18.4477 5 19C5 19.5523 5.44772 20 6 20H21V22H6C4.34315 22 3 20.6569 3 19V4C3 2.89543 3.89543 2 5 2H21V18ZM5 16.05C5.16156 16.0172 5.32877 16 5.5 16H19V4H5V16.05ZM16 9H8V7H16V9Z"></path></svg></div><div class="ml-2 max-[1024px]:hidden">知识库</div></div></a></div><a class="group text-components-main-nav-nav-button-text hover:bg-components-main-nav-nav-button-bg-hover flex items-center relative px-3 h-8 rounded-xl font-medium text-sm cursor-pointer" href="http://localhost/tools"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon h-4 w-4"><path d="M20 2C20.5523 2 21 2.44772 21 3V8C21 8.55228 20.5523 9 20 9H15V22C15 22.5523 14.5523 23 14 23H10C9.44772 23 9 22.5523 9 22V9H3.5C2.94772 9 2.5 8.55228 2.5 8V5.61803C2.5 5.23926 2.714 4.893 3.05279 4.72361L8.5 2H20ZM15 4H8.97214L4.5 6.23607V7H11V21H13V7H15V4ZM19 4H17V7H19V4Z"></path></svg><div class="ml-2 max-[1024px]:hidden">工具</div></a></div><div class="flex min-w-0 flex-[1] items-center justify-end pl-2 pr-3 min-[1280px]:pl-3"><div class="mr-2"><a class="group plugins-nav-button" href="http://localhost/plugins"><div class="system-sm-medium relative flex h-8 flex-row items-center justify-center gap-0.5 rounded-xl border border-transparent p-1.5 text-text-tertiary hover:bg-state-base-hover hover:text-text-secondary"><div class="mr-0.5 flex h-5 w-5 items-center justify-center"><svg width="14" height="16" viewBox="0 0 14 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" data-icon="Group" aria-hidden="true"><g id="Group"><path id="Vector" d="M5.6475 8.0115L0.333496 5.05884V11.3335C0.333491 11.4524 0.365258 11.569 0.425506 11.6715C0.485754 11.7739 0.572294 11.8584 0.676163 11.9162L6.3335 15.0588V9.17684C6.33344 8.93907 6.26981 8.70565 6.14919 8.50075C6.02857 8.29586 5.85536 8.12694 5.6475 8.0115Z" fill="currentColor"></path><path id="Vector_2" d="M7.66699 9.17684V15.0588L13.3243 11.9162C13.4282 11.8584 13.5147 11.7739 13.575 11.6715C13.6352 11.569 13.667 11.4524 13.667 11.3335V5.05884L8.35299 8.0115C8.14513 8.12694 7.97192 8.29586 7.8513 8.50075C7.73068 8.70565 7.66705 8.93907 7.66699 9.17684Z" fill="currentColor"></path><path id="Vector_3" d="M10.1913 2.34351C9.804 3.33351 8.588 4.00017 7 4.00017C5.412 4.00017 4.196 3.33351 3.80867 2.34351L1 3.90417L6.35267 6.87817C6.5507 6.98815 6.77348 7.04586 7 7.04586C7.22652 7.04586 7.4493 6.98815 7.64733 6.87817L13 3.90417L10.1913 2.34351Z" fill="currentColor"></path><path id="Vector_4" d="M7 2.66675C8.10457 2.66675 9 2.21903 9 1.66675C9 1.11446 8.10457 0.666748 7 0.666748C5.89543 0.666748 5 1.11446 5 1.66675C5 2.21903 5.89543 2.66675 7 2.66675Z" fill="currentColor"></path></g></svg></div><span class="px-0.5">插件</span></div></a></div><div class=""><div class="relative inline-block text-left" data-headlessui-state=""><button class="inline-flex items-center rounded-[20px] p-0.5 hover:bg-background-default-dodge" id="headlessui-menu-button-_r_5_" type="button" aria-haspopup="menu" aria-expanded="false" data-headlessui-state=""><div class="shrink-0 flex items-center rounded-full bg-primary-600" style="width: 36px; height: 36px; font-size: 36px; line-height: 36px;"><div class="scale-[0.4] text-center text-white" style="width: 36px; height: 36px; font-size: 36px; line-height: 36px;">V</div></div></button></div></div></div></div></div><div class="style_app___hJq8 relative flex overflow-hidden"><div class="flex shrink-0 flex-col border-r border-divider-burn bg-background-default-subtle transition-all w-14"><div class="shrink-0 p-1"><div><button class="block w-full"><div class="flex flex-col gap-2 rounded-lg p-1 hover:bg-state-base-hover"><div class="flex items-center gap-1"><div class="ml-1"><span class="flex items-center justify-center relative grow-0 shrink-0 overflow-hidden border-[0.5px] border-divider-regular w-8 h-8 text-xl rounded-lg" style="background: rgb(255, 234, 213);"><em-emoji id="🤖"><span class="emoji-mart-emoji" data-emoji-set="native"><span style="font-family: EmojiMart, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Segoe UI&quot;, &quot;Apple Color Emoji&quot;, &quot;Twemoji Mozilla&quot;, &quot;Noto Color Emoji&quot;, &quot;Android Emoji&quot;;">🤖</span></span></em-emoji></span></div></div><div class="flex items-center justify-center"><div class="flex h-5 w-5 items-center justify-center rounded-md p-0.5"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon h-4 w-4 text-text-tertiary"><path d="M5 7C5 6.17157 5.67157 5.5 6.5 5.5C7.32843 5.5 8 6.17157 8 7C8 7.82843 7.32843 8.5 6.5 8.5C5.67157 8.5 5 7.82843 5 7ZM6.5 3.5C4.567 3.5 3 5.067 3 7C3 8.933 4.567 10.5 6.5 10.5C8.433 10.5 10 8.933 10 7C10 5.067 8.433 3.5 6.5 3.5ZM12 8H20V6H12V8ZM16 17C16 16.1716 16.6716 15.5 17.5 15.5C18.3284 15.5 19 16.1716 19 17C19 17.8284 18.3284 18.5 17.5 18.5C16.6716 18.5 16 17.8284 16 17ZM17.5 13.5C15.567 13.5 14 15.067 14 17C14 18.933 15.567 20.5 17.5 20.5C19.433 20.5 21 18.933 21 17C21 15.067 19.433 13.5 17.5 13.5ZM4 16V18H12V16H4Z"></path></svg></div></div></div></button></div></div><div class="relative px-4 py-2"><div class="w-full my-0 h-px bg-divider-subtle"></div></div><nav class="flex grow flex-col gap-y-0.5 p-3"><a class="system-sm-medium text-components-menu-item-text hover:bg-components-menu-item-bg-hover hover:text-components-menu-item-text-hover flex h-8 items-center rounded-lg pl-3 pr-1" title="编排" href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/workflow"><div class="-ml-1"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" aria-hidden="true" class="remixicon h-4 w-4 shrink-0"><path d="M20 9V5H4V9H20ZM20 11H4V19H20V11ZM3 3H21C21.5523 3 22 3.44772 22 4V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3ZM5 12H8V17H5V12ZM5 6H7V8H5V6ZM9 6H11V8H9V6Z"></path></svg></div><span class="overflow-hidden whitespace-nowrap transition-all duration-200 ease-in-out ml-0 max-w-0 opacity-0">编排</span></a><a class="system-sm-semibold border-b-[0.25px] border-l-[0.75px] border-r-[0.25px] border-t-[0.75px] border-effects-highlight-lightmode-off bg-components-menu-item-bg-active text-text-accent-light-mode-only flex h-8 items-center rounded-lg pl-3 pr-1" title="访问 API" href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop"><div class="-ml-1"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" aria-hidden="true" class="remixicon h-4 w-4 shrink-0"><path d="M3 3H21C21.5523 3 22 3.44772 22 4V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3ZM12 15V17H18V15H12ZM8.41421 12L5.58579 14.8284L7 16.2426L11.2426 12L7 7.75736L5.58579 9.17157L8.41421 12Z"></path></svg></div><span class="overflow-hidden whitespace-nowrap transition-all duration-200 ease-in-out ml-0 max-w-0 opacity-0">访问 API</span></a><a class="system-sm-medium text-components-menu-item-text hover:bg-components-menu-item-bg-hover hover:text-components-menu-item-text-hover flex h-8 items-center rounded-lg pl-3 pr-1" title="日志与标注" href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/logs"><div class="-ml-1"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" aria-hidden="true" class="remixicon h-4 w-4 shrink-0"><path d="M19 22H5C3.34315 22 2 20.6569 2 19V3C2 2.44772 2.44772 2 3 2H17C17.5523 2 18 2.44772 18 3V15H22V19C22 20.6569 20.6569 22 19 22ZM18 17V19C18 19.5523 18.4477 20 19 20C19.5523 20 20 19.5523 20 19V17H18ZM16 20V4H4V19C4 19.5523 4.44772 20 5 20H16ZM6 7H14V9H6V7ZM6 11H14V13H6V11ZM6 15H11V17H6V15Z"></path></svg></div><span class="overflow-hidden whitespace-nowrap transition-all duration-200 ease-in-out ml-0 max-w-0 opacity-0">日志与标注</span></a><a class="system-sm-medium text-components-menu-item-text hover:bg-components-menu-item-bg-hover hover:text-components-menu-item-text-hover flex h-8 items-center rounded-lg pl-3 pr-1" title="监测" href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/overview"><div class="-ml-1"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" aria-hidden="true" class="remixicon h-4 w-4 shrink-0"><path d="M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4ZM12 5C13.018 5 13.9852 5.21731 14.8579 5.60806L13.2954 7.16944C12.8822 7.05892 12.448 7 12 7C9.23858 7 7 9.23858 7 12C7 13.3807 7.55964 14.6307 8.46447 15.5355L7.05025 16.9497L6.89445 16.7889C5.71957 15.5368 5 13.8525 5 12C5 8.13401 8.13401 5 12 5ZM18.3924 9.14312C18.7829 10.0155 19 10.9824 19 12C19 13.933 18.2165 15.683 16.9497 16.9497L15.5355 15.5355C16.4404 14.6307 17 13.3807 17 12C17 11.552 16.9411 11.1178 16.8306 10.7046L18.3924 9.14312ZM16.2426 6.34315L17.6569 7.75736L13.9325 11.483C13.9765 11.6479 14 11.8212 14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C12.1788 10 12.3521 10.0235 12.517 10.0675L16.2426 6.34315Z"></path></svg></div><span class="overflow-hidden whitespace-nowrap transition-all duration-200 ease-in-out ml-0 max-w-0 opacity-0">监测</span></a></nav></div><div class="grow overflow-hidden bg-components-panel-bg"><div class="relative flex h-full flex-col overflow-hidden"><div class="flex shrink-0 items-center justify-between border-b border-solid border-b-divider-regular px-6 py-2"><div class="text-lg font-medium text-text-primary"></div><div class="flex flex-wrap items-center gap-y-2"><div class="mr-2 flex h-8 items-center rounded-lg border-[0.5px] border-components-input-border-active bg-components-input-bg-normal pl-1.5 pr-1 leading-5"><div class="mr-0.5 h-5 shrink-0 rounded-md border border-divider-subtle px-1.5 text-[11px] text-text-tertiary">API 服务器</div><div class="w-fit truncate px-1 text-[13px] font-medium text-text-secondary sm:w-[248px]">http://localhost/v1</div><div class="mx-1 h-[14px] w-[1px] bg-divider-regular"></div><button type="button" class="action-btn action-btn-m" data-state="closed"><div><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon h-4 w-4"><path d="M7 4V2H17V4H20.0066C20.5552 4 21 4.44495 21 4.9934V21.0066C21 21.5552 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5551 3 21.0066V4.9934C3 4.44476 3.44495 4 3.9934 4H7ZM7 6H5V20H19V6H17V8H7V6ZM9 4V6H15V4H9Z"></path></svg></div></button></div><div class="mr-2 flex h-8 items-center rounded-lg border-[0.5px] border-[#D1FADF] bg-[#ECFDF3] px-3 text-xs font-semibold text-[#039855]">运行中</div><button type="button" class="btn disabled:btn-disabled btn-ghost btn-small px-3 !h-8 shrink-0"><div class="flex h-3.5 w-3.5 items-center justify-center"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon h-3.5 w-3.5 text-text-tertiary"><path d="M10.7577 11.8281L18.6066 3.97919L20.0208 5.3934L18.6066 6.80761L21.0815 9.28249L19.6673 10.6967L17.1924 8.22183L15.7782 9.63604L17.8995 11.7574L16.4853 13.1716L14.364 11.0503L12.1719 13.2423C13.4581 15.1837 13.246 17.8251 11.5355 19.5355C9.58291 21.4882 6.41709 21.4882 4.46447 19.5355C2.51184 17.5829 2.51184 14.4171 4.46447 12.4645C6.17493 10.754 8.81633 10.5419 10.7577 11.8281ZM10.1213 18.1213C11.2929 16.9497 11.2929 15.0503 10.1213 13.8787C8.94975 12.7071 7.05025 12.7071 5.87868 13.8787C4.70711 15.0503 4.70711 16.9497 5.87868 18.1213C7.05025 19.2929 8.94975 19.2929 10.1213 18.1213Z"></path></svg></div><div class="system-xs-medium px-[3px] text-text-tertiary undefined">API 密钥</div></button></div></div><div class="grow overflow-auto px-4 py-4 sm:px-10"><div class="flex"><div class="fixed right-20 top-32 z-10 transition-all duration-150 ease-out w-11"><button class="group flex h-11 w-11 items-center justify-center rounded-full border-[0.5px] border-components-panel-border bg-components-panel-bg shadow-lg transition-all duration-150 hover:bg-background-default-hover hover:shadow-xl" aria-label="Open table of contents"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon h-5 w-5 text-text-tertiary transition-colors group-hover:text-text-secondary"><path d="M8 4H21V6H8V4ZM4.5 6.5C3.67157 6.5 3 5.82843 3 5C3 4.17157 3.67157 3.5 4.5 3.5C5.32843 3.5 6 4.17157 6 5C6 5.82843 5.32843 6.5 4.5 6.5ZM4.5 13.5C3.67157 13.5 3 12.8284 3 12C3 11.1716 3.67157 10.5 4.5 10.5C5.32843 10.5 6 11.1716 6 12C6 12.8284 5.32843 13.5 4.5 13.5ZM4.5 20.4C3.67157 20.4 3 19.7284 3 18.9C3 18.0716 3.67157 17.4 4.5 17.4C5.32843 17.4 6 18.0716 6 18.9C6 19.7284 5.32843 20.4 4.5 20.4ZM8 11H21V13H8V11ZM8 18H21V20H8V18Z"></path></svg></button></div><article class="prose-xl prose"><h1>工作流编排对话型应用 API</h1>
<p>对话应用支持会话持久化，可将之前的聊天记录作为上下文进行回答，可适用于聊天/客服 AI 等。</p>
<div><h3>基础 URL</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Code</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>http://localhost/v1</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><h3>鉴权</h3><p>Service API 使用 <code>API-Key</code> 进行鉴权。
<i><strong>强烈建议开发者把 <code>API-Key</code> 放在后端存储，而非分享或者放在客户端存储，以免 <code>API-Key</code> 泄露，导致财产损失。</strong></i>
所有 API 请求都应在 <strong><code>Authorization</code></strong> HTTP Header 中包含您的 <code>API-Key</code>，如下所示：</p><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Code</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>Authorization: Bearer {API_KEY}</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div>
<hr>
<span id="Create-Chat-Message" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400">POST</span><span class="font-mono text-xs text-zinc-400">/chat-messages</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#Create-Chat-Message" class="group text-inherit no-underline hover:text-inherit">发送对话消息</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>创建会话消息。</p><h3>Request Body</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>query</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户输入/提问内容。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>inputs</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">object</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>允许传入 App 定义的各变量值。
inputs 参数包含了多组键值对（Key/Value pairs），每组的键对应一个特定变量，每组的值则是该变量的具体值。
如果变量是文件类型，请指定一个包含以下 <code>files</code> 中所述键的对象。
默认 <code>{}</code></p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>response_mode</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><ul>
<li><code>streaming</code> 流式模式（推荐）。基于 SSE（<strong><a href="https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events">Server-Sent Events</a></strong>）实现类似打字机输出方式的流式返回。</li>
<li><code>blocking</code> 阻塞模式，等待执行完毕后返回结果。（请求若流程较长可能会被中断）。
<i>由于 Cloudflare 限制，请求会在 100 秒超时无返回后中断。</i></li>
</ul></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，用于定义终端用户的身份，方便检索、统计。
由开发者定义规则，需保证用户标识在应用内唯一。服务 API 不会共享 WebApp 创建的对话。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>conversation_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）会话 ID，需要基于之前的聊天记录继续对话，必须传之前消息的 conversation_id。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>files</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">array[object]</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>文件列表，适用于传入文件结合文本理解并回答问题，仅当模型支持 Vision/Video 能力时可用。</p><ul>
<li><code>type</code> (string) 支持类型：
<ul>
<li><code>document</code> 具体类型包含：'TXT', 'MD', 'MARKDOWN', 'MDX', 'PDF', 'HTML', 'XLSX', 'XLS', 'VTT', 'PROPERTIES', 'DOC', 'DOCX', 'CSV', 'EML', 'MSG', 'PPTX', 'PPT', 'XML', 'EPUB'</li>
<li><code>image</code> 具体类型包含：'JPG', 'JPEG', 'PNG', 'GIF', 'WEBP', 'SVG'</li>
<li><code>audio</code> 具体类型包含：'MP3', 'M4A', 'WAV', 'WEBM', 'MPGA'</li>
<li><code>video</code> 具体类型包含：'MP4', 'MOV', 'MPEG', 'WEBM'</li>
<li><code>custom</code> 具体类型包含：其他文件类型</li>
</ul>
</li>
<li><code>transfer_method</code> (string)  传递方式:
<ul>
<li><code>remote_url</code>: 文件地址。</li>
<li><code>local_file</code>: 上传文件。</li>
</ul>
</li>
<li><code>url</code> 文件地址。（仅当传递方式为 <code>remote_url</code> 时）。</li>
<li><code>upload_file_id</code> 上传文件 ID。（仅当传递方式为 <code>local_file </code>时）。</li>
</ul></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>auto_generate_name</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">bool</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）自动生成标题，默认 <code>true</code>。 若设置为 <code>false</code>，则可通过调用会话重命名接口并设置 <code>auto_generate</code> 为 <code>true</code> 实现异步生成标题。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>workflow_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）工作流ID，用于指定特定版本，如果不提供则使用默认的已发布版本。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>trace_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）链路追踪ID。适用于与业务系统已有的trace组件打通，实现端到端分布式追踪等场景。如果未指定，系统会自动生成<code>trace_id</code>。支持以下三种方式传递，具体优先级依次为：<br></p><ul>
<li>Header：通过 HTTP Header <code>X-Trace-Id</code> 传递，优先级最高。<br></li>
<li>Query 参数：通过 URL 查询参数 <code>trace_id</code> 传递。<br></li>
<li>Request Body：通过请求体字段 <code>trace_id</code> 传递（即本字段）。<br></li>
</ul></dd></dl></li></ul></div><h3>Response</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><p>当 <code>response_mode</code> 为 <code>blocking</code> 时，返回 ChatCompletionResponse object。
当 <code>response_mode</code> 为 <code>streaming</code>时，返回 ChunkChatCompletionResponse object 流式序列。</p><h3>ChatCompletionResponse</h3><p>返回完整的 App 结果，<code>Content-Type</code> 为 <code>application/json</code>。</p><ul>
<li><code>event</code> (string) 事件类型，固定为 <code>message</code></li>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>id</code> (string) 唯一ID</li>
<li><code>message_id</code> (string) 消息唯一 ID</li>
<li><code>conversation_id</code> (string) 会话 ID</li>
<li><code>mode</code> (string) App 模式，固定为 chat</li>
<li><code>answer</code> (string) 完整回复内容</li>
<li><code>metadata</code> (object) 元数据
<ul>
<li><code>usage</code> (Usage) 模型用量信息</li>
<li><code>retriever_resources</code> (array[RetrieverResource]) 引用和归属分段列表</li>
</ul>
</li>
<li><code>created_at</code> (int) 消息创建时间戳，如：1705395332</li>
</ul><h3>ChunkChatCompletionResponse</h3><p>返回 App 输出的流式块，<code>Content-Type</code> 为 <code>text/event-stream</code>。
每个流式块均为 data: 开头，块之间以 \n\n 即两个换行符分隔，如下所示：</p><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-streaming">data: {"event": "message", "task_id": "900bbd43-dc0b-4383-a372-aa6e6c414227", "id": "663c5084-a254-4040-8ad3-51f2a3c1a77c", "answer": "Hi", "created_at": 1705398420}\n\n
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><p>流式块中根据 event 不同，结构也不同：</p><ul>
<li><code>event: message</code> LLM 返回文本块事件，即：完整的文本以分块的方式输出。
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>message_id</code> (string) 消息唯一 ID</li>
<li><code>conversation_id</code> (string) 会话 ID</li>
<li><code>answer</code> (string) LLM 返回文本块内容</li>
<li><code>created_at</code> (int) 创建时间戳，如：1705395332</li>
</ul>
</li>
<li><code>event: message_file</code> 文件事件，表示有新文件需要展示
<ul>
<li><code>id</code> (string) 文件唯一ID</li>
<li><code>type</code> (string) 文件类型，目前仅为image</li>
<li><code>belongs_to</code> (string) 文件归属，user或assistant，该接口返回仅为 <code>assistant</code></li>
<li><code>url</code> (string) 文件访问地址</li>
<li><code>conversation_id</code>  (string) 会话ID</li>
</ul>
</li>
<li><code>event: message_end</code> 消息结束事件，收到此事件则代表流式返回结束。
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>message_id</code> (string) 消息唯一 ID</li>
<li><code>conversation_id</code> (string) 会话 ID</li>
<li><code>metadata</code> (object) 元数据
<ul>
<li><code>usage</code> (Usage) 模型用量信息</li>
<li><code>retriever_resources</code> (array[RetrieverResource]) 引用和归属分段列表</li>
</ul>
</li>
</ul>
</li>
<li><code>event: tts_message</code> TTS 音频流事件，即：语音合成输出。内容是Mp3格式的音频块，使用 base64 编码后的字符串，播放的时候直接解码即可。(开启自动播放才有此消息)
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>message_id</code> (string) 消息唯一 ID</li>
<li><code>audio</code> (string) 语音合成之后的音频块使用 Base64 编码之后的文本内容，播放的时候直接 base64 解码送入播放器即可</li>
<li><code>created_at</code> (int) 创建时间戳，如：1705395332</li>
</ul>
</li>
<li><code>event: tts_message_end</code> TTS 音频流结束事件，收到这个事件表示音频流返回结束。
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>message_id</code> (string) 消息唯一 ID</li>
<li><code>audio</code> (string) 结束事件是没有音频的，所以这里是空字符串</li>
<li><code>created_at</code> (int) 创建时间戳，如：1705395332</li>
</ul>
</li>
<li><code>event: message_replace</code> 消息内容替换事件。
开启内容审查和审查输出内容时，若命中了审查条件，则会通过此事件替换消息内容为预设回复。
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>message_id</code> (string) 消息唯一 ID</li>
<li><code>conversation_id</code> (string) 会话 ID</li>
<li><code>answer</code> (string) 替换内容（直接替换 LLM 所有回复文本）</li>
<li><code>created_at</code> (int) 创建时间戳，如：1705395332</li>
</ul>
</li>
<li><code>event: workflow_started</code> workflow 开始执行
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>workflow_run_id</code> (string) workflow 执行 ID</li>
<li><code>event</code> (string) 固定为 <code>workflow_started</code></li>
<li><code>data</code> (object) 详细内容
<ul>
<li><code>id</code> (string) workflow 执行 ID</li>
<li><code>workflow_id</code> (string) 关联 Workflow ID</li>
<li><code>created_at</code> (timestamp) 开始时间</li>
</ul>
</li>
</ul>
</li>
<li><code>event: node_started</code> node 开始执行
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>workflow_run_id</code> (string) workflow 执行 ID</li>
<li><code>event</code> (string) 固定为 <code>node_started</code></li>
<li><code>data</code> (object) 详细内容
<ul>
<li><code>id</code> (string) workflow 执行 ID</li>
<li><code>node_id</code> (string) 节点 ID</li>
<li><code>node_type</code> (string) 节点类型</li>
<li><code>title</code> (string) 节点名称</li>
<li><code>index</code> (int) 执行序号，用于展示 Tracing Node 顺序</li>
<li><code>predecessor_node_id</code> (string) 前置节点 ID，用于画布展示执行路径</li>
<li><code>inputs</code> (object) 节点中所有使用到的前置节点变量内容</li>
<li><code>created_at</code> (timestamp) 开始时间</li>
</ul>
</li>
</ul>
</li>
<li><code>event: node_finished</code> node 执行结束，成功失败同一事件中不同状态
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>workflow_run_id</code> (string) workflow 执行 ID</li>
<li><code>event</code> (string) 固定为 <code>node_finished</code></li>
<li><code>data</code> (object) 详细内容
<ul>
<li><code>id</code> (string) node 执行 ID</li>
<li><code>node_id</code> (string) 节点 ID</li>
<li><code>index</code> (int) 执行序号，用于展示 Tracing Node 顺序</li>
<li><code>predecessor_node_id</code> (string) optional 前置节点 ID，用于画布展示执行路径</li>
<li><code>inputs</code> (object) 节点中所有使用到的前置节点变量内容</li>
<li><code>process_data</code> (json) Optional 节点过程数据</li>
<li><code>outputs</code> (json) Optional 输出内容</li>
<li><code>status</code> (string) 执行状态 <code>running</code> / <code>succeeded</code> / <code>failed</code> / <code>stopped</code></li>
<li><code>error</code> (string) Optional 错误原因</li>
<li><code>elapsed_time</code> (float) Optional 耗时(s)</li>
<li><code>execution_metadata</code> (json) 元数据
<ul>
<li><code>total_tokens</code> (int) optional 总使用 tokens</li>
<li><code>total_price</code> (decimal) optional 总费用</li>
<li><code>currency</code> (string) optional 货币，如 <code>USD</code> / <code>RMB</code></li>
</ul>
</li>
<li><code>created_at</code> (timestamp) 开始时间</li>
</ul>
</li>
</ul>
</li>
<li><code>event: workflow_finished</code> workflow 执行结束，成功失败同一事件中不同状态
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>workflow_run_id</code> (string) workflow 执行 ID</li>
<li><code>event</code> (string) 固定为 <code>workflow_finished</code></li>
<li><code>data</code> (object) 详细内容
<ul>
<li><code>id</code> (string) workflow 执行 ID</li>
<li><code>workflow_id</code> (string) 关联 Workflow ID</li>
<li><code>status</code> (string)  执行状态 <code>running</code> / <code>succeeded</code> / <code>failed</code> / <code>stopped</code></li>
<li><code>outputs</code> (json) Optional 输出内容</li>
<li><code>error</code> (string) Optional 错误原因</li>
<li><code>elapsed_time</code> (float) Optional 耗时(s)</li>
<li><code>total_tokens</code> (int) Optional 总使用 tokens</li>
<li><code>total_steps</code> (int) 总步数（冗余），默认 0</li>
<li><code>created_at</code> (timestamp) 开始时间</li>
<li><code>finished_at</code> (timestamp) 结束时间</li>
</ul>
</li>
</ul>
</li>
<li><code>event: error</code>
流式输出过程中出现的异常会以 stream event 形式输出，收到异常事件后即结束。
<ul>
<li><code>task_id</code> (string) 任务 ID，用于请求跟踪和下方的停止响应接口</li>
<li><code>message_id</code> (string) 消息唯一 ID</li>
<li><code>status</code> (int) HTTP 状态码</li>
<li><code>code</code> (string) 错误码</li>
<li><code>message</code> (string) 错误消息</li>
</ul>
</li>
<li><code>event: ping</code> 每 10s 一次的 ping 事件，保持连接存活。</li>
</ul><h3>Errors</h3><ul>
<li>404，对话不存在</li>
<li>400，<code>invalid_param</code>，传入参数异常</li>
<li>400，<code>app_unavailable</code>，App 配置不可用</li>
<li>400，<code>provider_not_initialize</code>，无可用模型凭据配置</li>
<li>400，<code>provider_quota_exceeded</code>，模型调用额度不足</li>
<li>400，<code>model_currently_not_support</code>，当前模型不可用</li>
<li>400，<code>workflow_not_found</code>，指定的工作流版本未找到</li>
<li>400，<code>draft_workflow_error</code>，无法使用草稿工作流版本</li>
<li>400，<code>workflow_id_format_error</code>，工作流ID格式错误，需要UUID格式</li>
<li>400，<code>completion_request_error</code>，文本生成失败</li>
<li>500，服务内部异常</li>
</ul></ul></div></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-sky-500">POST</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/chat-messages</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X POST 'http://localhost/v1/chat-messages' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "inputs": {},
  "query": "What are the specs of the iPhone 13 Pro Max?",
  "response_mode": "streaming",
  "conversation_id": "",
  "user": "abc-123",
  "files": [
      {
          "type": "image",
          "transfer_method": "remote_url",
          "url": "https://cloud.dify.ai/logo/logo-site.png"
      }
  ]
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><h3>阻塞模式</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
    "event": "message",
    "task_id": "c3800678-a077-43df-a102-53f23ed20b88",
    "id": "9da23599-e713-473b-982c-4328d4f5c78a",
    "message_id": "9da23599-e713-473b-982c-4328d4f5c78a",
    "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2",
    "mode": "chat",
    "answer": "iPhone 13 Pro Max specs are listed here:...",
    "metadata": {
        "usage": {
            "prompt_tokens": 1033,
            "prompt_unit_price": "0.001",
            "prompt_price_unit": "0.001",
            "prompt_price": "0.0010330",
            "completion_tokens": 128,
            "completion_unit_price": "0.002",
            "completion_price_unit": "0.001",
            "completion_price": "0.0002560",
            "total_tokens": 1161,
            "total_price": "0.0012890",
            "currency": "USD",
            "latency": 0.7682376249867957
        },
        "retriever_resources": [
            {
                "position": 1,
                "dataset_id": "101b4c97-fc2e-463c-90b1-5261a4cdcafb",
                "dataset_name": "iPhone",
                "document_id": "8dd1ad74-0b5f-4175-b735-7d98bbbb4e00",
                "document_name": "iPhone List",
                "segment_id": "ed599c7f-2766-4294-9d1d-e5235a61270a",
                "score": 0.98457545,
                "content": "\"Model\",\"Release Date\",\"Display Size\",\"Resolution\",\"Processor\",\"RAM\",\"Storage\",\"Camera\",\"Battery\",\"Operating System\"\n\"iPhone 13 Pro Max\",\"September 24, 2021\",\"6.7 inch\",\"1284 x 2778\",\"Hexa-core (2x3.23 GHz Avalanche + 4x1.82 GHz Blizzard)\",\"6 GB\",\"128, 256, 512 GB, 1TB\",\"12 MP\",\"4352 mAh\",\"iOS 15\""
            }
        ]
    },
    "created_at": 1705407629
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><h3>流式模式</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-streaming">  data: {"event": "workflow_started", "task_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "workflow_run_id": "5ad498-f0c7-4085-b384-88cbe6290", "data": {"id": "5ad498-f0c7-4085-b384-88cbe6290", "workflow_id": "dfjasklfjdslag", "created_at": 1679586595}}
  data: {"event": "node_started", "task_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "workflow_run_id": "5ad498-f0c7-4085-b384-88cbe6290", "data": {"id": "5ad498-f0c7-4085-b384-88cbe6290", "node_id": "dfjasklfjdslag", "node_type": "start", "title": "Start", "index": 0, "predecessor_node_id": "fdljewklfklgejlglsd", "inputs": {}, "created_at": 1679586595}}
  data: {"event": "node_finished", "task_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "workflow_run_id": "5ad498-f0c7-4085-b384-88cbe6290", "data": {"id": "5ad498-f0c7-4085-b384-88cbe6290", "node_id": "dfjasklfjdslag", "node_type": "start", "title": "Start", "index": 0, "predecessor_node_id": "fdljewklfklgejlglsd", "inputs": {}, "outputs": {}, "status": "succeeded", "elapsed_time": 0.324, "execution_metadata": {"total_tokens": 63127864, "total_price": 2.378, "currency": "USD"},  "created_at": 1679586595}}
  data: {"event": "workflow_finished", "task_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "workflow_run_id": "5ad498-f0c7-4085-b384-88cbe6290", "data": {"id": "5ad498-f0c7-4085-b384-88cbe6290", "workflow_id": "dfjasklfjdslag", "outputs": {}, "status": "succeeded", "elapsed_time": 0.324, "total_tokens": 63127864, "total_steps": "1", "created_at": 1679586595, "finished_at": 1679976595}}
  data: {"event": "message", "message_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "answer": " I", "created_at": 1679586595}
  data: {"event": "message", "message_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "answer": "'m", "created_at": 1679586595}
  data: {"event": "message", "message_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "answer": " glad", "created_at": 1679586595}
  data: {"event": "message", "message_id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "answer": " to", "created_at": 1679586595}
  data: {"event": "message", "message_id" : "5ad4cb98-f0c7-4085-b384-88c403be6290", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "answer": " meet", "created_at": 1679586595}
  data: {"event": "message", "message_id" : "5ad4cb98-f0c7-4085-b384-88c403be6290", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "answer": " you", "created_at": 1679586595}
  data: {"event": "message_end", "id": "5e52ce04-874b-4d27-9045-b3bc80def685", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "metadata": {"usage": {"prompt_tokens": 1033, "prompt_unit_price": "0.001", "prompt_price_unit": "0.001", "prompt_price": "0.0010330", "completion_tokens": 135, "completion_unit_price": "0.002", "completion_price_unit": "0.001", "completion_price": "0.0002700", "total_tokens": 1168, "total_price": "0.0013030", "currency": "USD", "latency": 1.381760165997548}, "retriever_resources": [{"position": 1, "dataset_id": "101b4c97-fc2e-463c-90b1-5261a4cdcafb", "dataset_name": "iPhone", "document_id": "8dd1ad74-0b5f-4175-b735-7d98bbbb4e00", "document_name": "iPhone List", "segment_id": "ed599c7f-2766-4294-9d1d-e5235a61270a", "score": 0.98457545, "content": "\"Model\",\"Release Date\",\"Display Size\",\"Resolution\",\"Processor\",\"RAM\",\"Storage\",\"Camera\",\"Battery\",\"Operating System\"\n\"iPhone 13 Pro Max\",\"September 24, 2021\",\"6.7 inch\",\"1284 x 2778\",\"Hexa-core (2x3.23 GHz Avalanche + 4x1.82 GHz Blizzard)\",\"6 GB\",\"128, 256, 512 GB, 1TB\",\"12 MP\",\"4352 mAh\",\"iOS 15\""}]}}
  data: {"event": "tts_message", "conversation_id": "23dd85f3-1a41-4ea0-b7a9-062734ccfaf9", "message_id": "a8bdc41c-13b2-4c18-bfd9-054b9803038c", "created_at": 1721205487, "task_id": "3bf8a0bb-e73b-4690-9e66-4e429bad8ee7", "audio": "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq"}
  data: {"event": "tts_message_end", "conversation_id": "23dd85f3-1a41-4ea0-b7a9-062734ccfaf9", "message_id": "a8bdc41c-13b2-4c18-bfd9-054b9803038c", "created_at": 1721205487, "task_id": "3bf8a0bb-e73b-4690-9e66-4e429bad8ee7", "audio": ""}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="files-upload" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400">POST</span><span class="font-mono text-xs text-zinc-400">/files/upload</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#files-upload" class="group text-inherit no-underline hover:text-inherit">上传文件</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>上传文件并在发送消息时使用，可实现图文多模态理解。
支持您的应用程序所支持的所有格式。
<i>上传的文件仅供当前终端用户使用。</i></p><h3>Request Body</h3><p>该接口需使用  <code>multipart/form-data</code> 进行请求。</p><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>file</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">file</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>要上传的文件。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，用于定义终端用户的身份，必须和发送消息接口传入 user 保持一致。</p></dd></dl></li></ul></div><h3>Response</h3><p>成功上传后，服务器会返回文件的 ID 和相关信息。</p><ul>
<li><code>id</code> (uuid) ID</li>
<li><code>name</code> (string) 文件名</li>
<li><code>size</code> (int) 文件大小（byte）</li>
<li><code>extension</code> (string) 文件后缀</li>
<li><code>mime_type</code> (string) 文件 mime-type</li>
<li><code>created_by</code> (uuid) 上传人 ID</li>
<li><code>created_at</code> (timestamp) 上传时间</li>
</ul><h3>Errors</h3><ul>
<li>400，<code>no_file_uploaded</code>，必须提供文件</li>
<li>400，<code>too_many_files</code>，目前只接受一个文件</li>
<li>400，<code>unsupported_preview</code>，该文件不支持预览</li>
<li>400，<code>unsupported_estimate</code>，该文件不支持估算</li>
<li>413，<code>file_too_large</code>，文件太大</li>
<li>415，<code>unsupported_file_type</code>，不支持的扩展名，当前只接受文档类文件</li>
<li>503，<code>s3_connection_failed</code>，无法连接到 S3 服务</li>
<li>503，<code>s3_permission_denied</code>，无权限上传文件到 S3</li>
<li>503，<code>s3_file_too_large</code>，文件超出 S3 大小限制</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-sky-500">POST</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/files/upload</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X POST 'http://localhost/v1/files/upload' \
--header 'Authorization: Bearer {api_key}' \
--form 'file=@localfile;type=image/[png|jpeg|jpg|webp|gif]' \
--form 'user=abc-123'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "id": "72fa9618-8f89-4a37-9b33-7e1178a24a67",
  "name": "example.png",
  "size": 1024,
  "extension": "png",
  "mime_type": "image/png",
  "created_by": 123,
  "created_at": 1577836800,
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="file-preview" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/files/:file_id/preview</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#file-preview" class="group text-inherit no-underline hover:text-inherit">文件预览</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>预览或下载已上传的文件。此端点允许您访问先前通过文件上传 API 上传的文件。</p><i>文件只能在属于请求应用程序的消息范围内访问。</i><h3>路径参数</h3><ul>
<li><code>file_id</code> (string) 必需
要预览的文件的唯一标识符，从文件上传 API 响应中获得。</li>
</ul><h3>查询参数</h3><ul>
<li><code>as_attachment</code> (boolean) 可选
是否强制将文件作为附件下载。默认为 <code>false</code>（在浏览器中预览）。</li>
</ul><h3>响应</h3><p>返回带有适当浏览器显示或下载标头的文件内容。</p><ul>
<li><code>Content-Type</code> 根据文件 MIME 类型设置</li>
<li><code>Content-Length</code> 文件大小（以字节为单位，如果可用）</li>
<li><code>Content-Disposition</code> 如果 <code>as_attachment=true</code> 则设置为 "attachment"</li>
<li><code>Cache-Control</code> 用于性能的缓存标头</li>
<li><code>Accept-Ranges</code> 对于音频/视频文件设置为 "bytes"</li>
</ul><h3>错误</h3><ul>
<li>400, <code>invalid_param</code>, 参数输入异常</li>
<li>403, <code>file_access_denied</code>, 文件访问被拒绝或文件不属于当前应用程序</li>
<li>404, <code>file_not_found</code>, 文件未找到或已被删除</li>
<li>500, 服务内部错误</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><h3>请求示例</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/files/:file_id/preview</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/files/72fa9618-8f89-4a37-9b33-7e1178a24a67/preview' \
--header 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><h3>作为附件下载</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Download Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/files/:file_id/preview?as_attachment=true</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/files/72fa9618-8f89-4a37-9b33-7e1178a24a67/preview?as_attachment=true' \
--header 'Authorization: Bearer {api_key}' \
--output downloaded_file.png</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><h3>响应标头示例</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response Headers</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-http">Content-Type: image/png
Content-Length: 1024
Cache-Control: public, max-age=3600
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><h3>文件下载响应标头</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Download Response Headers</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-http">Content-Type: image/png
Content-Length: 1024
Content-Disposition: attachment; filename*=UTF-8''example.png
Cache-Control: public, max-age=3600
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="Stop" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400">POST</span><span class="font-mono text-xs text-zinc-400">/chat-messages/:task_id/stop</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#Stop" class="group text-inherit no-underline hover:text-inherit">停止响应</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>仅支持流式模式。</p><h3>Path</h3><ul>
<li><code>task_id</code> (string) 任务 ID，可在流式返回 Chunk 中获取</li>
</ul><h3>Request Body</h3><ul>
<li><code>user</code> (string) Required
用户标识，用于定义终端用户的身份，必须和发送消息接口传入 user 保持一致。API 无法访问 WebApp 创建的会话。</li>
</ul><h3>Response</h3><ul>
<li><code>result</code> (string) 固定返回 success</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-sky-500">POST</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/chat-messages/:task_id/stop</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X POST 'http://localhost/v1/chat-messages/:task_id/stop' \
-H 'Authorization: Bearer {api_key}' \
-H 'Content-Type: application/json' \
--data-raw '{
  "user": "abc-123"
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "result": "success"
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="feedbacks" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400">POST</span><span class="font-mono text-xs text-zinc-400">/messages/:message_id/feedbacks</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#feedbacks" class="group text-inherit no-underline hover:text-inherit">消息反馈（点赞）</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>消息终端用户反馈、点赞，方便应用开发者优化输出预期。</p><h3>Path Params</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>message_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>消息 ID</p></dd></dl></li></ul></div><h3>Request Body</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>rating</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>点赞 like, 点踩 dislike,  撤销点赞 null</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，由开发者定义规则，需保证用户标识在应用内唯一。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>content</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>消息反馈的具体信息。</p></dd></dl></li></ul></div><h3>Response</h3><ul>
<li><code>result</code> (string) 固定返回 success</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-sky-500">POST</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/messages/:message_id/feedbacks</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X POST 'http://localhost/v1/messages/:message_id/feedbacks' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "rating": "like",
  "user": "abc-123",
  "content": "message feedback information"
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "result": "success"
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="app-feedbacks" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/app/feedbacks</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#app-feedbacks" class="group text-inherit no-underline hover:text-inherit">获取APP的消息点赞和反馈</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>获取应用的终端用户反馈、点赞。</p><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>page</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）分页，默认值：1</p></dd></dl></li></ul></div><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>limit</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）每页数量，默认值：20</p></dd></dl></li></ul></div><h3>Response</h3><ul>
<li><code>data</code> (List) 返回该APP的点赞、反馈列表。</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/app/feedbacks</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/app/feedbacks?page=1&amp;limit=20' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">    {
    "data": [
        {
            "id": "8c0fbed8-e2f9-49ff-9f0e-15a35bdd0e25",
            "app_id": "f252d396-fe48-450e-94ec-e184218e7346",
            "conversation_id": "2397604b-9deb-430e-b285-4726e51fd62d",
            "message_id": "709c0b0f-0a96-4a4e-91a4-ec0889937b11",
            "rating": "like",
            "content": "message feedback information-3",
            "from_source": "user",
            "from_end_user_id": "74286412-9a1a-42c1-929c-01edb1d381d5",
            "from_account_id": null,
            "created_at": "2025-04-24T09:24:38",
            "updated_at": "2025-04-24T09:24:38"
        }
    ]
    }

</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="suggested" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/messages/{message_id}/suggested</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#suggested" class="group text-inherit no-underline hover:text-inherit">获取下一轮建议问题列表</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>获取下一轮建议问题列表。</p><h3>Path Params</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>message_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>Message ID</p></dd></dl></li></ul></div><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，由开发者定义规则，需保证用户标识在应用内唯一。</p></dd></dl></li></ul></div></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/messages/{message_id}/suggested</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl --location --request GET 'http://localhost/v1/messages/{message_id}/suggested?user=abc-123' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
--header 'Content-Type: application/json'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "result": "success",
  "data": [
        "a",
        "b",
        "c"
    ]
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<hr>
<span id="messages" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/messages</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#messages" class="group text-inherit no-underline hover:text-inherit">获取会话历史消息</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>滚动加载形式返回历史聊天记录，第一页返回最新  <code>limit</code> 条，即：倒序返回。</p><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>conversation_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>会话 ID</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，由开发者定义规则，需保证用户标识在应用内唯一。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>first_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>当前页第一条聊天记录的 ID，默认 null</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>limit</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">int</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>一次请求返回多少条聊天记录，默认 20 条。</p></dd></dl></li></ul></div><h3>Response</h3><ul>
<li><code>data</code> (array[object])  消息列表
<ul>
<li><code>id</code>  (string) 消息 ID</li>
<li><code>conversation_id</code> (string)  会话 ID</li>
<li><code>inputs</code> (object) 用户输入参数。</li>
<li><code>query</code>  (string) 用户输入 / 提问内容。</li>
<li><code>message_files</code> (array[object]) 消息文件
<ul>
<li><code>id</code> (string) ID</li>
<li><code>type</code> (string) 文件类型，image 图片</li>
<li><code>url</code> (string) 文件预览地址，使用文件预览 API (<code>/files/{file_id}/preview</code>) 访问文件</li>
<li><code>belongs_to</code> (string) 文件归属方，user 或 assistant</li>
</ul>
</li>
<li><code>answer</code> (string)  回答消息内容</li>
<li><code>created_at</code>  (timestamp) 创建时间</li>
<li><code>feedback</code> (object) 反馈信息
<ul>
<li><code>rating</code> (string) 点赞 like / 点踩 dislike</li>
</ul>
</li>
<li><code>retriever_resources</code> (array[RetrieverResource]) 引用和归属分段列表</li>
</ul>
</li>
<li><code>has_more</code> (bool) 是否存在下一页</li>
<li><code>limit</code> (int) 返回条数，若传入超过系统限制，返回系统限制数量</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><h3>Request Example</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/messages</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/messages?user=abc-123&amp;conversation_id={conversation_id}'
--header 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><h3>Response Example</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
"limit": 20,
"has_more": false,
"data": [
    {
        "id": "a076a87f-31e5-48dc-b452-0061adbbc922",
        "conversation_id": "cd78daf6-f9e4-4463-9ff2-54257230a0ce",
        "inputs": {
            "name": "dify"
        },
        "query": "iphone 13 pro",
        "answer": "The iPhone 13 Pro, released on September 24, 2021, features a 6.1-inch display with a resolution of 1170 x 2532. It is equipped with a Hexa-core (2x3.23 GHz Avalanche + 4x1.82 GHz Blizzard) processor, 6 GB of RAM, and offers storage options of 128 GB, 256 GB, 512 GB, and 1 TB. The camera is 12 MP, the battery capacity is 3095 mAh, and it runs on iOS 15.",
        "message_files": [],
        "feedback": null,
        "retriever_resources": [
            {
                "position": 1,
                "dataset_id": "101b4c97-fc2e-463c-90b1-5261a4cdcafb",
                "dataset_name": "iPhone",
                "document_id": "8dd1ad74-0b5f-4175-b735-7d98bbbb4e00",
                "document_name": "iPhone List",
                "segment_id": "ed599c7f-2766-4294-9d1d-e5235a61270a",
                "score": 0.98457545,
                "content": "\"Model\",\"Release Date\",\"Display Size\",\"Resolution\",\"Processor\",\"RAM\",\"Storage\",\"Camera\",\"Battery\",\"Operating System\"\n\"iPhone 13 Pro Max\",\"September 24, 2021\",\"6.7 inch\",\"1284 x 2778\",\"Hexa-core (2x3.23 GHz Avalanche + 4x1.82 GHz Blizzard)\",\"6 GB\",\"128, 256, 512 GB, 1TB\",\"12 MP\",\"4352 mAh\",\"iOS 15\""
            }
        ],
        "created_at": 1705569239
    }
  ]
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><h3>Response Example(智能助手)</h3><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
"limit": 20,
"has_more": false,
"data": [
    {
        "id": "d35e006c-7c4d-458f-9142-be4930abdf94",
        "conversation_id": "957c068b-f258-4f89-ba10-6e8a0361c457",
        "inputs": {},
        "query": "draw a cat",
        "answer": "I have generated an image of a cat for you. Please check your messages to view the image.",
        "message_files": [
            {
                "id": "976990d2-5294-47e6-8f14-7356ba9d2d76",
                "type": "image",
                "url": "http://127.0.0.1:5001/files/tools/976990d2-5294-47e6-8f14-7356ba9d2d76.png?timestamp=1705988524&amp;nonce=55df3f9f7311a9acd91bf074cd524092&amp;sign=z43nMSO1L2HBvoqADLkRxr7Biz0fkjeDstnJiCK1zh8=",
                "belongs_to": "assistant"
            }
        ],
        "feedback": null,
        "retriever_resources": [],
        "created_at": 1705988187
    }
    ]
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="conversations" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/conversations</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#conversations" class="group text-inherit no-underline hover:text-inherit">获取会话列表</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>获取当前用户的会话列表，默认返回最近的 20 条。</p><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，由开发者定义规则，需保证用户标识在应用内唯一。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>last_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）当前页最后面一条记录的 ID，默认 null</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>limit</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">int</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）一次请求返回多少条记录，默认 20 条，最大 100 条，最小 1 条。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>sort_by</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）排序字段，默认 -updated_at(按更新时间倒序排列)</p><ul>
<li>可选值：created_at, -created_at, updated_at, -updated_at</li>
<li>字段前面的符号代表顺序或倒序，-代表倒序</li>
</ul></dd></dl></li></ul></div><h3>Response</h3><ul>
<li><code>data</code> (array[object]) 会话列表
<ul>
<li><code>id</code>  (string) 会话 ID</li>
<li><code>name</code>  (string) 会话名称，默认由大语言模型生成。</li>
<li><code>inputs</code> (object) 用户输入参数。</li>
<li><code>status</code> (string) 会话状态</li>
<li><code>introduction</code> (string) 开场白</li>
<li><code>created_at</code> (timestamp) 创建时间</li>
<li><code>updated_at</code> (timestamp) 更新时间</li>
</ul>
</li>
<li><code>has_more</code> (bool)</li>
<li><code>limit</code> (int) 返回条数，若传入超过系统限制，返回系统限制数量</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/conversations</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/conversations?user=abc-123&amp;last_id=&amp;limit=20' \
--header 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "limit": 20,
  "has_more": false,
  "data": [
    {
      "id": "10799fb8-64f7-4296-bbf7-b42bfbe0ae54",
      "name": "New chat",
      "inputs": {
          "book": "book",
          "myName": "Lucy"
      },
      "status": "normal",
      "created_at": 1679667915,
      "updated_at": 1679667915
    },
    {
      "id": "hSIhXBhNe8X1d8Et"
      // ...
    }
  ]
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="delete" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-rose-200 bg-rose-50 text-red-500 dark:ring-rose-500/20 dark:bg-rose-400/10 dark:text-rose-400">DELETE</span><span class="font-mono text-xs text-zinc-400">/conversations/:conversation_id</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#delete" class="group text-inherit no-underline hover:text-inherit">删除会话</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>删除会话。</p><h3>Path</h3><ul>
<li><code>conversation_id</code> (string) 会话 ID</li>
</ul><h3>Request Body</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，由开发者定义规则，需保证用户标识在应用内唯一。</p></dd></dl></li></ul></div><h3>Response</h3><ul>
<li><code>result</code> (string) 固定返回 success</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-red-500 dark:text-rose-500">DELETE</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/conversations/:conversation_id</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X DELETE 'http://localhost/v1/conversations/{conversation_id}' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}' \
--data '{
  "user": "abc-123"
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-text">204 No Content
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="rename" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400">POST</span><span class="font-mono text-xs text-zinc-400">/conversations/:conversation_id/name</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#rename" class="group text-inherit no-underline hover:text-inherit">会话重命名</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>对会话进行重命名，会话名称用于显示在支持多会话的客户端上。</p><h3>Path</h3><ul>
<li><code>conversation_id</code> (string) 会话 ID</li>
</ul><h3>Request Body</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>name</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）名称，若 <code>auto_generate</code> 为 <code>true</code> 时，该参数可不传。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>auto_generate</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">bool</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）自动生成标题，默认 false。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，由开发者定义规则，需保证用户标识在应用内唯一。</p></dd></dl></li></ul></div><h3>Response</h3><ul>
<li><code>id</code>  (string) 会话 ID</li>
<li><code>name</code>  (string) 会话名称</li>
<li><code>inputs</code> (object) 用户输入参数</li>
<li><code>status</code> (string) 会话状态</li>
<li><code>introduction</code> (string) 开场白</li>
<li><code>created_at</code> (timestamp) 创建时间</li>
<li><code>updated_at</code> (timestamp) 更新时间</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-sky-500">POST</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/conversations/:conversation_id/name</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X POST 'http://localhost/v1/conversations/{conversation_id}/name' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {api_key}' \
--data-raw '{
  "name": "",
  "auto_generate": true,
  "user": "abc-123"
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "id": "34d511d5-56de-4f16-a997-57b379508443",
  "name": "hello",
  "inputs": {},
  "status": "normal",
  "introduction": "",
  "created_at": 1732731141,
  "updated_at": 1732734510
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="conversation-variables" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/conversations/:conversation_id/variables</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#conversation-variables" class="group text-inherit no-underline hover:text-inherit">获取对话变量</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>从特定对话中检索变量。此端点对于提取对话过程中捕获的结构化数据非常有用。</p><h3>路径参数</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>conversation_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>要从中检索变量的对话ID。</p></dd></dl></li></ul></div><h3>查询参数</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识符，由开发人员定义的规则，在应用程序内必须唯一。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>last_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）当前页最后面一条记录的 ID，默认 null</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>limit</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">int</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>（选填）一次请求返回多少条记录，默认 20 条，最大 100 条，最小 1 条。</p></dd></dl></li></ul></div><h3>响应</h3><ul>
<li><code>limit</code> (int) 每页项目数</li>
<li><code>has_more</code> (bool) 是否有更多项目</li>
<li><code>data</code> (array[object]) 变量列表
<ul>
<li><code>id</code> (string) 变量 ID</li>
<li><code>name</code> (string) 变量名称</li>
<li><code>value_type</code> (string) 变量类型（字符串、数字、布尔等）</li>
<li><code>value</code> (string) 变量值</li>
<li><code>description</code> (string) 变量描述</li>
<li><code>created_at</code> (int) 创建时间戳</li>
<li><code>updated_at</code> (int) 最后更新时间戳</li>
</ul>
</li>
</ul><h3>错误</h3><ul>
<li>404, <code>conversation_not_exists</code>, 对话不存在</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/conversations/:conversation_id/variables</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/conversations/{conversation_id}/variables?user=abc-123' \
--header 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">带变量名过滤的请求</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/conversations/{conversation_id}/variables?user=abc-123&amp;variable_name=customer_name' \
--header 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "limit": 100,
  "has_more": false,
  "data": [
    {
      "id": "variable-uuid-1",
      "name": "customer_name",
      "value_type": "string",
      "value": "John Doe",
      "description": "客户名称（从对话中提取）",
      "created_at": 1650000000000,
      "updated_at": 1650000000000
    },
    {
      "id": "variable-uuid-2",
      "name": "order_details",
      "value_type": "json",
      "value": "{\"product\":\"Widget\",\"quantity\":5,\"price\":19.99}",
      "description": "客户的订单详情",
      "created_at": 1650000000000,
      "updated_at": 1650000000000
    }
  ]
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="update-conversation-variable" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-amber-300 bg-amber-400/10 text-amber-500 dark:ring-amber-400/30 dark:bg-amber-400/10 dark:text-amber-400">PUT</span><span class="font-mono text-xs text-zinc-400">/conversations/:conversation_id/variables/:variable_id</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#update-conversation-variable" class="group text-inherit no-underline hover:text-inherit">更新对话变量</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>更新特定对话变量的值。此端点允许您修改在对话过程中捕获的变量值，同时保留其名称、类型和描述。</p><h3>路径参数</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>conversation_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>包含要更新变量的对话ID。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>variable_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>要更新的变量ID。</p></dd></dl></li></ul></div><h3>请求体</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>value</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">any</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>变量的新值。必须匹配变量的预期类型（字符串、数字、对象等）。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识符，由开发人员定义的规则，在应用程序内必须唯一。</p></dd></dl></li></ul></div><h3>响应</h3><p>返回包含以下内容的更新变量对象：</p><ul>
<li><code>id</code> (string) 变量ID</li>
<li><code>name</code> (string) 变量名称</li>
<li><code>value_type</code> (string) 变量类型（字符串、数字、对象等）</li>
<li><code>value</code> (any) 更新后的变量值</li>
<li><code>description</code> (string) 变量描述</li>
<li><code>created_at</code> (int) 创建时间戳</li>
<li><code>updated_at</code> (int) 最后更新时间戳</li>
</ul><h3>错误</h3><ul>
<li>400, <code>Type mismatch: variable expects {expected_type}, but got {actual_type} type</code>, 值类型与变量的预期类型不匹配</li>
<li>404, <code>conversation_not_exists</code>, 对话不存在</li>
<li>404, <code>conversation_variable_not_exists</code>, 变量不存在</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-amber-500">PUT</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/conversations/:conversation_id/variables/:variable_id</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X PUT 'http://localhost/v1/conversations/{conversation_id}/variables/{variable_id}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {api_key}' \
--data-raw '{
  "value": "Updated Value",
  "user": "abc-123"
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">使用不同值类型更新</h3><div class="-mb-px flex gap-4 text-xs font-medium" role="tablist" aria-orientation="horizontal"><button class="border-b py-3 transition focus:[&amp;:not(:focus-visible)]:outline-none border-emerald-500 text-emerald-400" id="headlessui-tabs-tab-_r_e_" role="tab" type="button" aria-selected="true" tabindex="0" data-headlessui-state="selected" data-selected="" aria-controls="headlessui-tabs-panel-_r_k_">字符串值</button><button class="border-b py-3 transition focus:[&amp;:not(:focus-visible)]:outline-none border-transparent text-zinc-400 hover:text-zinc-300" id="headlessui-tabs-tab-_r_g_" role="tab" type="button" aria-selected="false" tabindex="-1" data-headlessui-state="" aria-controls="headlessui-tabs-panel-_r_m_">数字值</button><button class="border-b py-3 transition focus:[&amp;:not(:focus-visible)]:outline-none border-transparent text-zinc-400 hover:text-zinc-300" id="headlessui-tabs-tab-_r_i_" role="tab" type="button" aria-selected="false" tabindex="-1" data-headlessui-state="" aria-controls="headlessui-tabs-panel-_r_o_">对象值</button></div></div><div><div id="headlessui-tabs-panel-_r_k_" role="tabpanel" tabindex="0" data-headlessui-state="selected" data-selected="" aria-labelledby="headlessui-tabs-tab-_r_e_"><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X PUT 'http://localhost/v1/conversations/{conversation_id}/variables/{variable_id}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {api_key}' \
--data-raw '{
  "value": "新的字符串值",
  "user": "abc-123"
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><span aria-hidden="true" id="headlessui-tabs-panel-_r_m_" role="tabpanel" tabindex="-1" aria-labelledby="headlessui-tabs-tab-_r_g_" style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px;"></span><span aria-hidden="true" id="headlessui-tabs-panel-_r_o_" role="tabpanel" tabindex="-1" aria-labelledby="headlessui-tabs-tab-_r_i_" style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px;"></span></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "id": "variable-uuid-1",
  "name": "customer_name",
  "value_type": "string",
  "value": "Updated Value",
  "description": "客户名称（从对话中提取）",
  "created_at": 1650000000000,
  "updated_at": 1650000001000
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="audio-to-text" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400">POST</span><span class="font-mono text-xs text-zinc-400">/audio-to-text</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#audio-to-text" class="group text-inherit no-underline hover:text-inherit">语音转文字</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><h3>Request Body</h3><p>该接口需使用 <code>multipart/form-data</code> 进行请求。</p><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>file</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">file</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>语音文件。
支持格式：<code>['mp3', 'mp4', 'mpeg', 'mpga', 'm4a', 'wav', 'webm']</code>
文件大小限制：15MB</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，由开发者定义规则，需保证用户标识在应用内唯一。</p></dd></dl></li></ul></div><h3>Response</h3><ul>
<li><code>text</code> (string) 输出文字</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-sky-500">POST</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/audio-to-text</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X POST 'http://localhost/v1/audio-to-text' \
--header 'Authorization: Bearer {api_key}' \
--form 'file=@localfile;type=audio/[mp3|mp4|mpeg|mpga|m4a|wav|webm]'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "text": "hello"
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="text-to-audio" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400">POST</span><span class="font-mono text-xs text-zinc-400">/text-to-audio</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#text-to-audio" class="group text-inherit no-underline hover:text-inherit">文字转语音</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>文字转语音。</p><h3>Request Body</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>message_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">str</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>Dify 生成的文本消息，那么直接传递生成的message-id 即可，后台会通过 message_id 查找相应的内容直接合成语音信息。如果同时传 message_id 和 text，优先使用 message_id。</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>text</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">str</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>语音生成内容。如果没有传 message-id的话，则会使用这个字段的内容</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>user</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用户标识，由开发者定义规则，需保证用户标识在应用内唯一。</p></dd></dl></li></ul></div></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-sky-500">POST</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/text-to-audio</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -o text-to-audio.mp3 -X POST 'http://localhost/v1/text-to-audio' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "message_id": "5ad4cb98-f0c7-4085-b384-88c403be6290",
  "text": "Hello Dify",
  "user": "abc-123",
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">headers</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "Content-Type": "audio/wav"
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="info" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/info</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#info" class="group text-inherit no-underline hover:text-inherit">获取应用基本信息</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用于获取应用的基本信息</p><h3>Response</h3><ul>
<li><code>name</code> (string) 应用名称</li>
<li><code>description</code> (string) 应用描述</li>
<li><code>tags</code> (array[string]) 应用标签</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/info</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/info' \
-H 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "name": "My App",
  "description": "This is my app.",
  "tags": [
    "tag1",
    "tag2"
  ],
  "mode": "advanced-chat",
  "author_name": "Dify"
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="parameters" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/parameters</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#parameters" class="group text-inherit no-underline hover:text-inherit">获取应用参数</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用于进入页面一开始，获取功能开关、输入参数名称、类型及默认值等使用。</p><h3>Response</h3><ul>
<li><code>opening_statement</code> (string) 开场白</li>
<li><code>suggested_questions</code> (array[string]) 开场推荐问题列表</li>
<li><code>suggested_questions_after_answer</code> (object) 启用回答后给出推荐问题。
<ul>
<li><code>enabled</code> (bool) 是否开启</li>
</ul>
</li>
<li><code>speech_to_text</code> (object) 语音转文本
<ul>
<li><code>enabled</code> (bool) 是否开启</li>
</ul>
</li>
<li><code>text_to_speech</code> (object) 文本转语音
<ul>
<li><code>enabled</code> (bool) 是否开启</li>
<li><code>voice</code> (string) 语音类型</li>
<li><code>language</code> (string) 语言</li>
<li><code>autoPlay</code> (string) 自动播放
<ul>
<li><code>enabled</code>  开启</li>
<li><code>disabled</code> 关闭</li>
</ul>
</li>
</ul>
</li>
<li><code>retriever_resource</code> (object) 引用和归属
<ul>
<li><code>enabled</code> (bool) 是否开启</li>
</ul>
</li>
<li><code>annotation_reply</code> (object) 标记回复
<ul>
<li><code>enabled</code> (bool) 是否开启</li>
</ul>
</li>
<li><code>user_input_form</code> (array[object]) 用户输入表单配置
<ul>
<li><code>text-input</code> (object) 文本输入控件
<ul>
<li><code>label</code> (string) 控件展示标签名</li>
<li><code>variable</code> (string) 控件 ID</li>
<li><code>required</code> (bool) 是否必填</li>
<li><code>default</code> (string) 默认值</li>
</ul>
</li>
<li><code>paragraph</code> (object) 段落文本输入控件
<ul>
<li><code>label</code> (string) 控件展示标签名</li>
<li><code>variable</code> (string) 控件 ID</li>
<li><code>required</code> (bool) 是否必填</li>
<li><code>default</code> (string) 默认值</li>
</ul>
</li>
<li><code>select</code> (object) 下拉控件
<ul>
<li><code>label</code> (string) 控件展示标签名</li>
<li><code>variable</code> (string) 控件 ID</li>
<li><code>required</code> (bool) 是否必填</li>
<li><code>default</code> (string) 默认值</li>
<li><code>options</code> (array[string]) 选项值</li>
</ul>
</li>
</ul>
</li>
<li><code>file_upload</code> (object) 文件上传配置
<ul>
<li><code>document</code> (object) 文档设置
当前仅支持文档类型：<code>txt</code>, <code>md</code>, <code>markdown</code>, <code>pdf</code>, <code>html</code>, <code>xlsx</code>, <code>xls</code>, <code>docx</code>, <code>csv</code>, <code>eml</code>, <code>msg</code>, <code>pptx</code>, <code>ppt</code>, <code>xml</code>, <code>epub</code>。
<ul>
<li><code>enabled</code> (bool) 是否启用</li>
<li><code>number_limits</code> (int) 文档数量限制，默认为 3</li>
<li><code>transfer_methods</code> (array[string]) 传输方式列表：<code>remote_url</code>, <code>local_file</code>，必须选择一个。</li>
</ul>
</li>
<li><code>image</code> (object) 图片设置
当前仅支持图片类型：<code>png</code>, <code>jpg</code>, <code>jpeg</code>, <code>webp</code>, <code>gif</code>。
<ul>
<li><code>enabled</code> (bool) 是否启用</li>
<li><code>number_limits</code> (int) 图片数量限制，默认为 3</li>
<li><code>transfer_methods</code> (array[string]) 传输方式列表：<code>remote_url</code>, <code>local_file</code>，必须选择一个。</li>
</ul>
</li>
<li><code>audio</code> (object) 音频设置
当前仅支持音频类型：<code>mp3</code>, <code>m4a</code>, <code>wav</code>, <code>webm</code>, <code>amr</code>。
<ul>
<li><code>enabled</code> (bool) 是否启用</li>
<li><code>number_limits</code> (int) 音频数量限制，默认为 3</li>
<li><code>transfer_methods</code> (array[string]) 传输方式列表：<code>remote_url</code>, <code>local_file</code>，必须选择一个。</li>
</ul>
</li>
<li><code>video</code> (object) 视频设置
当前仅支持视频类型：<code>mp4</code>, <code>mov</code>, <code>mpeg</code>, <code>mpga</code>。
<ul>
<li><code>enabled</code> (bool) 是否启用</li>
<li><code>number_limits</code> (int) 视频数量限制，默认为 3</li>
<li><code>transfer_methods</code> (array[string]) 传输方式列表：<code>remote_url</code>, <code>local_file</code>，必须选择一个。</li>
</ul>
</li>
<li><code>custom</code> (object) 自定义设置
<ul>
<li><code>enabled</code> (bool) 是否启用</li>
<li><code>number_limits</code> (int) 自定义数量限制，默认为 3</li>
<li><code>transfer_methods</code> (array[string]) 传输方式列表：<code>remote_url</code>, <code>local_file</code>，必须选择一个。</li>
</ul>
</li>
</ul>
</li>
<li><code>system_parameters</code> (object) 系统参数
<ul>
<li><code>file_size_limit</code> (int) Document upload size limit (MB)</li>
<li><code>image_file_size_limit</code> (int) Image file upload size limit (MB)</li>
<li><code>audio_file_size_limit</code> (int) Audio file upload size limit (MB)</li>
<li><code>video_file_size_limit</code> (int) Video file upload size limit (MB)</li>
</ul>
</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/parameters</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/parameters'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "introduction": "nice to meet you",
  "user_input_form": [
    {
      "text-input": {
        "label": "a",
        "variable": "a",
        "required": true,
        "max_length": 48,
        "default": ""
      }
    },
    {
      // ...
    }
  ],
  "file_upload": {
    "image": {
      "enabled": true,
      "number_limits": 3,
      "transfer_methods": [
        "remote_url",
        "local_file"
      ]
    }
  },
  "system_parameters": {
      "file_size_limit": 15,
      "image_file_size_limit": 10,
      "audio_file_size_limit": 50,
      "video_file_size_limit": 100
  }
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="meta" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/meta</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#meta" class="group text-inherit no-underline hover:text-inherit">获取应用Meta信息</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用于获取工具 icon</p><h3>Response</h3><ul>
<li><code>tool_icons</code>(object[string]) 工具图标
<ul>
<li><code>工具名称</code> (string)
<ul>
<li><code>icon</code> (object|string)
<ul>
<li>(object) 图标
<ul>
<li><code>background</code> (string) hex 格式的背景色</li>
<li><code>content</code>(string) emoji</li>
</ul>
</li>
<li>(string) 图标 URL</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/meta</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/meta' \
-H 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "tool_icons": {
      "dalle2": "https://cloud.dify.ai/console/api/workspaces/current/tool-provider/builtin/dalle/icon",
      "api_tool": {
          "background": "#252525",
          "content": "😁"
      }
  }
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="site" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/site</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#site" class="group text-inherit no-underline hover:text-inherit">获取应用 WebApp 设置</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>用于获取应用的 WebApp 设置</p><h3>Response</h3><ul>
<li><code>title</code> (string) WebApp 名称</li>
<li><code>chat_color_theme</code> (string) 聊天颜色主题，hex 格式</li>
<li><code>chat_color_theme_inverted</code> (bool) 聊天颜色主题是否反转</li>
<li><code>icon_type</code> (string) 图标类型，<code>emoji</code>-表情，<code>image</code>-图片</li>
<li><code>icon</code> (string) 图标，如果是 <code>emoji</code> 类型，则是 emoji 表情符号，如果是 <code>image</code> 类型，则是图片 URL</li>
<li><code>icon_background</code> (string) hex 格式的背景色</li>
<li><code>icon_url</code> (string) 图标 URL</li>
<li><code>description</code> (string) 描述</li>
<li><code>copyright</code> (string) 版权信息</li>
<li><code>privacy_policy</code> (string) 隐私政策链接</li>
<li><code>custom_disclaimer</code> (string) 自定义免责声明</li>
<li><code>default_language</code> (string) 默认语言</li>
<li><code>show_workflow_steps</code> (bool) 是否显示工作流详情</li>
<li><code>use_icon_as_answer_icon</code> (bool) 是否使用 WebApp 图标替换聊天中的 🤖</li>
</ul></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/site</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl -X GET 'http://localhost/v1/site' \
-H 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "title": "My App",
  "chat_color_theme": "#ff4a4a",
  "chat_color_theme_inverted": false,
  "icon_type": "emoji",
  "icon": "😄",
  "icon_background": "#FFEAD5",
  "icon_url": null,
  "description": "This is my app.",
  "copyright": "all rights reserved",
  "privacy_policy": "",
  "custom_disclaimer": "All generated by AI",
  "default_language": "en-US",
  "show_workflow_steps": false,
  "use_icon_as_answer_icon": false,
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="annotation_list" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/apps/annotations</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#annotation_list" class="group text-inherit no-underline hover:text-inherit">获取标注列表</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>page</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>页码</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>limit</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>每页数量</p></dd></dl></li></ul></div></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/apps/annotations</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl --location --request GET 'http://localhost/v1/apps/annotations?page=1&amp;limit=20' \
--header 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "data": [
    {
      "id": "69d48372-ad81-4c75-9c46-2ce197b4d402",
      "question": "What is your name?",
      "answer": "I am Dify.",
      "hit_count": 0,
      "created_at": 1735625869
    }
  ],
  "has_more": false,
  "limit": 20,
  "total": 1,
  "page": 1
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="create_annotation" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400">POST</span><span class="font-mono text-xs text-zinc-400">/apps/annotations</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#create_annotation" class="group text-inherit no-underline hover:text-inherit">创建标注</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>question</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>问题</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>answer</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>答案内容</p></dd></dl></li></ul></div></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-sky-500">POST</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/apps/annotations</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl --location --request POST 'http://localhost/v1/apps/annotations' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "question": "What is your name?",
  "answer": "I am Dify."
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "id": "69d48372-ad81-4c75-9c46-2ce197b4d402",
  "question": "What is your name?",
  "answer": "I am Dify.",
  "hit_count": 0,
  "created_at": 1735625869
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="update_annotation" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-amber-300 bg-amber-400/10 text-amber-500 dark:ring-amber-400/30 dark:bg-amber-400/10 dark:text-amber-400">PUT</span><span class="font-mono text-xs text-zinc-400">/apps/annotations/{annotation_id}</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#update_annotation" class="group text-inherit no-underline hover:text-inherit">更新标注</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>annotation_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>标注 ID</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>question</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>问题</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>answer</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>答案内容</p></dd></dl></li></ul></div></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-amber-500">PUT</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/apps/annotations/{annotation_id}</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl --location --request PUT 'http://localhost/v1/apps/annotations/{annotation_id}' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "question": "What is your name?",
  "answer": "I am Dify."
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "id": "69d48372-ad81-4c75-9c46-2ce197b4d402",
  "question": "What is your name?",
  "answer": "I am Dify.",
  "hit_count": 0,
  "created_at": 1735625869
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="delete_annotation" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-rose-200 bg-rose-50 text-red-500 dark:ring-rose-500/20 dark:bg-rose-400/10 dark:text-rose-400">DELETE</span><span class="font-mono text-xs text-zinc-400">/apps/annotations/{annotation_id}</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#delete_annotation" class="group text-inherit no-underline hover:text-inherit">删除标注</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>annotation_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>标注 ID</p></dd></dl></li></ul></div></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-red-500 dark:text-rose-500">DELETE</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/apps/annotations/{annotation_id}</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl --location --request DELETE 'http://localhost/v1/apps/annotations/{annotation_id}' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-text">204 No Content
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div>
<hr>
<span id="initial_annotation_reply_settings" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400">POST</span><span class="font-mono text-xs text-zinc-400">/apps/annotation-reply/{action}</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#initial_annotation_reply_settings" class="group text-inherit no-underline hover:text-inherit">标注回复初始设置</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>action</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>动作，只能是 'enable' 或 'disable'</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>embedding_provider_name</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>指定的嵌入模型提供商，必须先在系统内设定好接入的模型，对应的是 provider 字段</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>embedding_model_name</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>指定的嵌入模型，对应的是 model 字段</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>score_threshold</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">number</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>相似度阈值，当相似度大于该阈值时，系统会自动回复，否则不回复</p></dd></dl></li></ul></div></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><p>嵌入模型的提供商和模型名称可以通过以下接口获取：v1/workspaces/current/models/model-types/text-embedding，具体见：通过 API 维护知识库。使用的 Authorization 是 Dataset 的 API Token。</p><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-sky-500">POST</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/apps/annotation-reply/{action}</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl --location --request POST 'http://localhost/v1/apps/annotation-reply/{action}' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "score_threshold": 0.9,
  "embedding_provider_name": "zhipu",
  "embedding_model_name": "embedding_3"
}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "job_id": "b15c8f68-1cf4-4877-bf21-ed7cf2011802",
  "job_status": "waiting"
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><p>该接口是异步执行，所以会返回一个job_id，通过查询job状态接口可以获取到最终的执行结果。</p></div></div>
<hr>
<span id="initial_annotation_reply_settings_task_status" class="relative -top-28"></span><div class="flex items-center gap-x-3"><span class="rounded-lg px-1.5 font-mono text-[0.625rem] font-semibold leading-6 ring-1 ring-inset ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400">GET</span><span class="font-mono text-xs text-zinc-400">/apps/annotation-reply/{action}/status/{job_id}</span></div><h2 class="mt-2 scroll-mt-32"><a href="http://localhost/app/2bc896a3-14c5-47f8-ae8b-3052e1dd3f37/develop#initial_annotation_reply_settings_task_status" class="group text-inherit no-underline hover:text-inherit">查询标注回复初始设置任务状态</a></h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:!max-w-none xl:grid-cols-2"><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><h3>Query</h3><div class="my-6"><ul role="list" class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5"><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>action</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>动作，只能是 'enable' 或 'disable'，并且必须和标注回复初始设置接口的动作一致</p></dd></dl></li><li class="m-0 px-0 py-4 first:pt-0 last:pb-0"><dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2"><dt class="sr-only">Name</dt><dd><code>job_id</code></dd><dt class="sr-only">Type</dt><dd class="font-mono text-xs text-zinc-400 dark:text-zinc-500">string</dd><dt class="sr-only">Description</dt><dd class="w-full flex-none [&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0"><p>任务 ID，从标注回复初始设置接口返回的 job_id</p></dd></dl></li></ul></div></div><div class="[&amp;&gt;:first-child]:mt-0 [&amp;&gt;:last-child]:mb-0 xl:sticky xl:top-24"><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Request</h3></div><div class="dark:bg-white/2.5 group"><div class="border-b-white/7.5 bg-white/2.5 dark:bg-white/1 flex h-9 items-center gap-2 border-y border-t-transparent bg-zinc-900 px-4 dark:border-b-white/5"><div class="dark flex"><span class="font-mono text-[0.625rem] font-semibold leading-6 text-emerald-500 dark:text-emerald-400">GET</span></div><span class="h-0.5 w-0.5 rounded-full bg-zinc-500"></span><span class="font-mono text-xs text-zinc-400">/apps/annotations</span></div><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><code>curl --location --request GET 'http://localhost/v1/apps/annotation-reply/{action}/status/{job_id}' \
--header 'Authorization: Bearer {api_key}'</code></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div><div class="not-prose my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10"><div class="flex min-h-[calc(theme(spacing.12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent"><h3 class="mr-auto pt-3 text-xs font-semibold text-white">Response</h3></div><div class="dark:bg-white/2.5 group"><div class="relative"><pre class="overflow-x-auto p-4 text-xs text-white"><pre><code class="language-json">{
  "job_id": "b15c8f68-1cf4-4877-bf21-ed7cf2011802",
  "job_status": "waiting",
  "error_msg": ""
}
</code></pre></pre><button type="button" class="group/button absolute right-4 top-1.5 overflow-hidden rounded-full py-1 pl-2 pr-3 text-2xs font-medium opacity-0 backdrop-blur transition focus:opacity-100 group-hover:opacity-100 hover:bg-white/7.5 dark:bg-white/2.5 bg-white/5 dark:hover:bg-white/5"><span aria-hidden="false" class="pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300"><svg viewBox="0 0 20 20" aria-hidden="true" class="h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400"><path stroke-width="0" d="M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"></path><path fill="none" stroke-linejoin="round" d="M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"></path></svg>Copy</span><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center justify-center text-emerald-400 transition duration-300 translate-y-1.5 opacity-0">Copied!</span></button></div></div></div></div></div></article></div></div></div></div></div></div></div></body></html>